YJIT: Count getivar side exits by receiver flag changes (#6735)

This commit is contained in:
Takashi Kokubun 2022-11-15 14:50:12 -08:00 коммит произвёл GitHub
Родитель 1125274c4e
Коммит d1fb659547
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

@ -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 {