aboutsummaryrefslogtreecommitdiffstats
path: root/mjit_compile.c
diff options
context:
space:
mode:
Diffstat (limited to 'mjit_compile.c')
-rw-r--r--mjit_compile.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/mjit_compile.c b/mjit_compile.c
index 4110af3855..b6ed984b20 100644
--- a/mjit_compile.c
+++ b/mjit_compile.c
@@ -331,6 +331,19 @@ inlinable_iseq_p(const struct rb_iseq_constant_body *body)
// * Do not read any `cfp->pc`
if (insn != BIN(leave) && insn_may_depend_on_sp_or_pc(insn, body->iseq_encoded + (pos + 1)))
return false;
+ // At this moment, `cfp->ep` in an inlined method is not working.
+ switch (insn) {
+ case BIN(getlocal):
+ case BIN(getlocal_WC_0):
+ case BIN(getlocal_WC_1):
+ case BIN(setlocal):
+ case BIN(setlocal_WC_0):
+ case BIN(setlocal_WC_1):
+ case BIN(getblockparam):
+ case BIN(getblockparamproxy):
+ case BIN(setblockparam):
+ return false;
+ }
pos += insn_len(insn);
}
return true;