diff options
Diffstat (limited to 'tool/ruby_vm/views/mjit_compile.inc.erb')
-rw-r--r-- | tool/ruby_vm/views/mjit_compile.inc.erb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tool/ruby_vm/views/mjit_compile.inc.erb b/tool/ruby_vm/views/mjit_compile.inc.erb index a3e29116cf..1812dabf4a 100644 --- a/tool/ruby_vm/views/mjit_compile.inc.erb +++ b/tool/ruby_vm/views/mjit_compile.inc.erb @@ -71,6 +71,12 @@ switch (insn) { fprintf(stderr, "MJIT warning: Unexpected JIT stack_size on leave: %d\n", b->stack_size); status->success = false; } +% # Special leave for an inlined call. + if (status->inlined_iseqs == NULL) { // the current ISeq is being inlined + fprintf(f, " return stack[0];\n"); + b->stack_size += <%= insn.call_attribute('sp_inc') %>; + break; + } % end % % # Main insn implementation generated by insns.def |