diff options
Diffstat (limited to 'insns.def')
-rw-r--r-- | insns.def | 32 |
1 files changed, 16 insertions, 16 deletions
@@ -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 |