summaryrefslogtreecommitdiff
path: root/mjit_compile.c
diff options
context:
space:
mode:
Diffstat (limited to 'mjit_compile.c')
-rw-r--r--mjit_compile.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/mjit_compile.c b/mjit_compile.c
index 4f87550e78..5eafd72329 100644
--- a/mjit_compile.c
+++ b/mjit_compile.c
@@ -214,7 +214,8 @@ mjit_compile(FILE *f, const struct rb_iseq_constant_body *body, const char *func
fprintf(f, " static const VALUE *const original_body_iseq = (VALUE *)0x%"PRIxVALUE";\n",
(VALUE)body->iseq_encoded);
- /* Simulate `opt_pc` in setup_parameters_complex */
+ /* Simulate `opt_pc` in setup_parameters_complex. Other PCs which may be passed by catch tables
+ are not considered since vm_exec doesn't call mjit_exec for catch tables. */
if (body->param.flags.has_opt) {
int i;
fprintf(f, "\n");
@@ -227,11 +228,6 @@ mjit_compile(FILE *f, const struct rb_iseq_constant_body *body, const char *func
fprintf(f, " }\n");
}
- /* ISeq might be used for catch table too. For that usage, this code cancels JIT execution. */
- fprintf(f, " if (reg_cfp->pc != original_body_iseq) {\n");
- fprintf(f, " return Qundef;\n");
- fprintf(f, " }\n");
-
compile_insns(f, body, 0, 0, &status);
compile_cancel_handler(f, body, &status);
fprintf(f, "\n} /* end of %s */\n", funcname);