LDS/LES/LFS/LGS/LSS: Fix segment wraparounds in 16-bit address mode.
This commit is contained in:
@@ -931,6 +931,8 @@ codegen_MEM_LOAD_REG(codeblock_t *block, uop_t *uop)
|
||||
host_arm64_ADD_REG(block, REG_X0, seg_reg, addr_reg, 0);
|
||||
if (uop->imm_data)
|
||||
host_arm64_ADD_IMM(block, REG_X0, REG_X0, uop->imm_data);
|
||||
if (uop->is_a16)
|
||||
host_arm64_AND_IMM(block, REG_X0, REG_X0, 0xffff);
|
||||
if (REG_IS_B(dest_size) || REG_IS_BH(dest_size)) {
|
||||
host_arm64_call(block, codegen_mem_load_byte);
|
||||
} else if (REG_IS_W(dest_size)) {
|
||||
|
||||
Reference in New Issue
Block a user