diff --git a/mjit_compile.c b/mjit_compile.c index 226d3e30a7..fc864c6187 100644 --- a/mjit_compile.c +++ b/mjit_compile.c @@ -48,10 +48,6 @@ get_iseq_if_available(CALL_CACHE cc) return NULL; } -/* TODO: move to somewhere shared with vm_args.c */ -#define IS_ARGS_SPLAT(ci) ((ci)->flag & VM_CALL_ARGS_SPLAT) -#define IS_ARGS_KEYWORD(ci) ((ci)->flag & VM_CALL_KWARG) - /* Returns TRUE if iseq is inlinable, otherwise NULL. This becomes TRUE in the same condition as CI_SET_FASTPATH (in vm_callee_setup_arg) is called from vm_call_iseq_setup. */ static int diff --git a/vm_args.c b/vm_args.c index 3bb2bd0a4b..d1207f7f62 100644 --- a/vm_args.c +++ b/vm_args.c @@ -884,11 +884,3 @@ vm_caller_setup_arg_block(const rb_execution_context_t *ec, rb_control_frame_t * } } } - -#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) 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 */