aboutsummaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.h
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-02-06 14:07:57 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-02-06 14:07:57 +0000
commit3cb196f404efdb391dd3020a1df0518b12338802 (patch)
tree6de077d242d2944efb09a50aa04d160df46d8534 /vm_insnhelper.h
parent1c8d23796f03c174c45b59f2eb2d4c8ff917b5b0 (diff)
downloadruby-3cb196f404efdb391dd3020a1df0518b12338802.tar.gz
mjit_compile.c: share the definition of macros
(IS_ARGS_SPLAT, IS_ARGS_KEYWORD) with vm_args.c. vm_args.c: share them with mjit_compile.c. vm_insnhelper.h: get those definitions, with CALLER_SETUP_ARG too git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_insnhelper.h')
-rw-r--r--vm_insnhelper.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/vm_insnhelper.h b/vm_insnhelper.h
index 1dd491cf7f..c07a937855 100644
--- a/vm_insnhelper.h
+++ b/vm_insnhelper.h
@@ -244,4 +244,12 @@ THROW_DATA_CONSUMED_SET(struct vm_throw_data *obj)
}
}
+#define IS_ARGS_SPLAT(ci) ((ci)->flag & VM_CALL_ARGS_SPLAT)
+#define IS_ARGS_KEYWORD(ci) ((ci)->flag & VM_CALL_KWARG)
+
+#define CALLER_SETUP_ARG(cfp, calling, ci) do { \
+ if (UNLIKELY(IS_ARGS_SPLAT(ci))) vm_caller_setup_arg_splat((cfp), (calling)); \
+ if (UNLIKELY(IS_ARGS_KEYWORD(ci))) vm_caller_setup_arg_kw((cfp), (calling), (ci)); \
+} while (0)
+
#endif /* RUBY_INSNHELPER_H */