diff options
Diffstat (limited to 'tool/ruby_vm/views/_mjit_compile_insn.erb')
-rw-r--r-- | tool/ruby_vm/views/_mjit_compile_insn.erb | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tool/ruby_vm/views/_mjit_compile_insn.erb b/tool/ruby_vm/views/_mjit_compile_insn.erb index 5627be4ada..b3c663441d 100644 --- a/tool/ruby_vm/views/_mjit_compile_insn.erb +++ b/tool/ruby_vm/views/_mjit_compile_insn.erb @@ -74,6 +74,9 @@ % if trace_enablable_insns.include?(insn.name) fprintf(f, " if (UNLIKELY(ruby_vm_event_enabled_flags & ISEQ_TRACE_EVENTS)) {\n"); fprintf(f, " reg_cfp->sp = (VALUE *)reg_cfp->bp + %d;\n", b->stack_size + (int)<%= insn.call_attribute('sp_inc') %> + 1); + if (!body->catch_except_p) { + fprintf(f, " reg_cfp->pc = original_body_iseq + %d;\n", next_pos); + } fprintf(f, " goto cancel;\n"); fprintf(f, " }\n"); % end |