YJIT: make type info more specific in gen_fixnum_cmp and gen_opt_mod (#7555)

This commit is contained in:
Maxime Chevalier-Boisvert 2023-03-17 16:16:34 -04:00 коммит произвёл GitHub
Родитель 7fc796f92a
Коммит 6ba07df490
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 3 добавлений и 3 удалений

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

@ -2673,7 +2673,7 @@ fn gen_fixnum_cmp(
let bool_opnd = cmov_op(asm, Qtrue.into(), Qfalse.into());
// Push the output on the stack
let dst = ctx.stack_push(Type::Unknown);
let dst = ctx.stack_push(Type::UnknownImm);
asm.mov(dst, bool_opnd);
KeepCompiling
@ -3297,7 +3297,8 @@ fn gen_opt_mod(
let ret = asm.ccall(rb_fix_mod_fix as *const u8, vec![arg0, arg1]);
// Push the return value onto the stack
let stack_ret = ctx.stack_push(Type::Unknown);
// When the two arguments are fixnums, the modulo output is always a fixnum
let stack_ret = ctx.stack_push(Type::Fixnum);
asm.mov(stack_ret, ret);
KeepCompiling
@ -5910,7 +5911,6 @@ fn gen_send_iseq(
argc = lead_num;
}
if iseq_has_rest {
// We are going to allocate so setting pc and sp.