From 6092fcde6920a5da0ad6b9cc8d33e71eac4f4201 Mon Sep 17 00:00:00 2001 From: k0kubun Date: Tue, 6 Feb 2018 14:07:57 +0000 Subject: 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 --- vm_insnhelper.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'vm_insnhelper.h') 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 */ -- cgit v1.2.3