YJIT: x64: Split mem-to-mem Insn::Store like Insn::Mov

The ARM backend allows for this so let's make x64 consistent.
This commit is contained in:
Alan Wu 2023-08-22 18:43:56 -04:00 коммит произвёл GitHub
Родитель c23e2e19b7
Коммит ff55238913
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 2 добавлений и 2 удалений

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

@ -635,7 +635,7 @@ fn write_rm_multi(cb: &mut CodeBlock, op_mem_reg8: u8, op_mem_reg_pref: u8, op_r
panic!("immediate value too large (num_bits={}, num={uimm:?})", num_bits);
}
},
_ => unreachable!()
_ => panic!("unknown encoding combo: {opnd0:?} {opnd1:?}")
};
}

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

@ -291,7 +291,7 @@ impl Assembler
*out = asm.next_opnd_out(Opnd::match_num_bits(&[*truthy, *falsy]));
asm.push_insn(insn);
},
Insn::Mov { dest, src } => {
Insn::Mov { dest, src } | Insn::Store { dest, src } => {
match (&dest, &src) {
(Opnd::Mem(_), Opnd::Mem(_)) => {
// We load opnd1 because for mov, opnd0 is the output