* Check only symbol flag bits

* Check all 4 bits
This commit is contained in:
Takashi Kokubun 2022-08-29 18:05:06 -07:00 коммит произвёл GitHub
Родитель 737402e938
Коммит ddca3482ef
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 2 добавлений и 1 удалений

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

@ -3454,7 +3454,8 @@ fn jit_guard_known_klass(
asm.comment("guard object is static symbol");
assert!(RUBY_SPECIAL_SHIFT == 8);
asm.cmp(obj_opnd, Opnd::UImm(RUBY_SYMBOL_FLAG as u64));
let flag_bits = asm.and(obj_opnd, Opnd::UImm(0xf));
asm.cmp(flag_bits, Opnd::UImm(RUBY_SYMBOL_FLAG as u64));
jit_chain_guard(JCC_JNE, jit, ctx, asm, ocb, max_chain_depth, side_exit);
ctx.upgrade_opnd_type(insn_opnd, Type::ImmSymbol);
}