summaryrefslogtreecommitdiff
path: root/yjit
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2023-04-24 12:20:52 -0700
committerGitHub <noreply@github.com>2023-04-24 12:20:52 -0700
commitf492e3b4e5ed30f6a592a3b644228bd335af7284 (patch)
tree0d17f6097346fd015307f7361c52bd3e0379dedc /yjit
parentf84d94b8039c1c44fd99690fd4b4e0184dab4fb5 (diff)
downloadruby-f492e3b4e5ed30f6a592a3b644228bd335af7284.tar.gz
YJIT: Use general definedivar at the end of chains (#7756)
Diffstat (limited to 'yjit')
-rw-r--r--yjit/src/codegen.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs
index 280b4e2c4c..c6f766f0fa 100644
--- a/yjit/src/codegen.rs
+++ b/yjit/src/codegen.rs
@@ -2417,7 +2417,7 @@ fn gen_definedivar(
// Specialize base on compile time values
let comptime_receiver = jit.peek_at_self();
- if comptime_receiver.shape_too_complex() {
+ if comptime_receiver.shape_too_complex() || asm.ctx.get_chain_depth() as i32 >= GET_IVAR_MAX_DEPTH {
// Fall back to calling rb_ivar_defined
// Save the PC and SP because the callee may allocate