summaryrefslogtreecommitdiff
path: root/yjit
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2022-11-15 14:50:12 -0800
committerGitHub <noreply@github.com>2022-11-15 14:50:12 -0800
commitd1fb6595475707986356fd2533fa3f2a650ea39b (patch)
tree9e5d4e4234a2ddfd9155cae6ddcf63ba5f693e97 /yjit
parent1125274c4e8aeffd8609ced41c05d26d45b9b5ad (diff)
YJIT: Count getivar side exits by receiver flag changes (#6735)
Notes
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
Diffstat (limited to 'yjit')
-rw-r--r--yjit/src/codegen.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs
index 72488f399c..6a3f0a3c36 100644
--- a/yjit/src/codegen.rs
+++ b/yjit/src/codegen.rs
@@ -2051,6 +2051,7 @@ fn gen_get_ivar(
asm.comment("guard shape, embedded, and T_OBJECT");
let flags_opnd = asm.and(flags_opnd, Opnd::UImm(expected_flags_mask as u64));
asm.cmp(flags_opnd, Opnd::UImm(expected_flags as u64));
+ let megamorphic_side_exit = counted_exit!(ocb, side_exit, getivar_megamorphic).into();
jit_chain_guard(
JCC_JNE,
jit,
@@ -2058,7 +2059,7 @@ fn gen_get_ivar(
asm,
ocb,
max_chain_depth,
- side_exit,
+ megamorphic_side_exit,
);
match ivar_index {