зеркало из https://github.com/github/ruby.git
YJIT: Count getivar side exits by receiver flag changes (#6735)
This commit is contained in:
Родитель
1125274c4e
Коммит
d1fb659547
|
@ -2051,6 +2051,7 @@ fn gen_get_ivar(
|
||||||
asm.comment("guard shape, embedded, and T_OBJECT");
|
asm.comment("guard shape, embedded, and T_OBJECT");
|
||||||
let flags_opnd = asm.and(flags_opnd, Opnd::UImm(expected_flags_mask as u64));
|
let flags_opnd = asm.and(flags_opnd, Opnd::UImm(expected_flags_mask as u64));
|
||||||
asm.cmp(flags_opnd, Opnd::UImm(expected_flags 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(
|
jit_chain_guard(
|
||||||
JCC_JNE,
|
JCC_JNE,
|
||||||
jit,
|
jit,
|
||||||
|
@ -2058,7 +2059,7 @@ fn gen_get_ivar(
|
||||||
asm,
|
asm,
|
||||||
ocb,
|
ocb,
|
||||||
max_chain_depth,
|
max_chain_depth,
|
||||||
side_exit,
|
megamorphic_side_exit,
|
||||||
);
|
);
|
||||||
|
|
||||||
match ivar_index {
|
match ivar_index {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче