summaryrefslogtreecommitdiff
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
parent1c8d23796f03c174c45b59f2eb2d4c8ff917b5b0 (diff)
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
-rw-r--r--mjit_compile.c4
-rw-r--r--vm_args.c8
-rw-r--r--vm_insnhelper.h8
3 files changed, 8 insertions, 12 deletions
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 */