summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authorTakashi Kokubun <[email protected]>2024-04-25 07:04:53 -0700
committerGitHub <[email protected]>2024-04-25 10:04:53 -0400
commit7ab1a608e7413cdb0f93243eb3e6e20a32cec44e (patch)
tree29836bd248b0e5bce497ae6969a6b6e7c2055152 /vm.c
parentf248e1008a8f79cca801b27d512a587f65a0dd36 (diff)
YJIT: Optimize local variables when EP == BP (take 2) (#10607)
* Revert "Revert "YJIT: Optimize local variables when EP == BP" (#10584)" This reverts commit c8783441952217c18e523749c821f82cd7e5d222. * YJIT: Take care of GC references in ISEQ invariants Co-authored-by: Alan Wu <[email protected]> --------- Co-authored-by: Alan Wu <[email protected]>
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/vm.c b/vm.c
index 646b92accf..902ac48847 100644
--- a/vm.c
+++ b/vm.c
@@ -1007,6 +1007,11 @@ vm_make_env_each(const rb_execution_context_t * const ec, rb_control_frame_t *co
}
#endif
+ // Invalidate JIT code that assumes cfp->ep == vm_base_ptr(cfp).
+ if (env->iseq) {
+ rb_yjit_invalidate_ep_is_bp(env->iseq);
+ }
+
return (VALUE)env;
}