summaryrefslogtreecommitdiff
path: root/insns.def
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-09-26 08:11:05 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-09-26 08:11:05 +0000
commitd3a9ebeb1c49e1cf8dd6accec6485dee32ccff17 (patch)
treeb905c1b8dea5fcca6d8890e748ce031f4011d273 /insns.def
parentee819b0ddb0cbeb9c587e743204988b2e05e7c5d (diff)
fix OPT_CALL_THREADED_CODE issue.
* insns.def (opt_send_without_block): reorder insn position because `opt_str_freeze` insn refer this insn (function) when OPT_CALL_THREADED_CODE is true. * vm_opts.h (OPT_THREADED_CODE): introduce new macro to select threaded code implementation with a compile option (-D...). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def32
1 files changed, 16 insertions, 16 deletions
diff --git a/insns.def b/insns.def
index cacc5b709f..3144ed9c06 100644
--- a/insns.def
+++ b/insns.def
@@ -751,6 +751,22 @@ send
CALL_METHOD(&calling, ci, cc);
}
+/* Invoke method without block */
+DEFINE_INSN
+opt_send_without_block
+(CALL_INFO ci, CALL_CACHE cc)
+(...)
+(VALUE val)
+// attr bool leaf = false; /* Of course it isn't. */
+// attr bool handles_sp = true;
+// attr rb_snum_t sp_inc = -ci->orig_argc;
+{
+ struct rb_calling_info calling;
+ calling.block_handler = VM_BLOCK_HANDLER_NONE;
+ vm_search_method(ci, cc, calling.recv = TOPN(calling.argc = ci->orig_argc));
+ CALL_METHOD(&calling, ci, cc);
+}
+
DEFINE_INSN
opt_str_freeze
(VALUE str, CALL_INFO ci, CALL_CACHE cc)
@@ -806,22 +822,6 @@ opt_newarray_min
val = vm_opt_newarray_min(num, STACK_ADDR_FROM_TOP(num));
}
-/* Invoke method without block */
-DEFINE_INSN
-opt_send_without_block
-(CALL_INFO ci, CALL_CACHE cc)
-(...)
-(VALUE val)
-// attr bool leaf = false; /* Of course it isn't. */
-// attr bool handles_sp = true;
-// attr rb_snum_t sp_inc = -ci->orig_argc;
-{
- struct rb_calling_info calling;
- calling.block_handler = VM_BLOCK_HANDLER_NONE;
- vm_search_method(ci, cc, calling.recv = TOPN(calling.argc = ci->orig_argc));
- CALL_METHOD(&calling, ci, cc);
-}
-
/* super(args) # args.size => num */
DEFINE_INSN
invokesuper