mirror of https://gitee.com/openkylin/qemu.git
m68k: fix subx mem, mem instruction
This patch fixes decrement of the pointers for subx mem, mem instructions. Without the patch pointers are decremented by OS_* constant value instead of retrieving the corresponding data size and using it as a decrement. Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <20180418064152.24606.71975.stgit@pasha-VirtualBox> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
c2c768500f
commit
355d4d1c00
|
@ -3166,11 +3166,11 @@ DISAS_INSN(subx_mem)
|
||||||
opsize = insn_opsize(insn);
|
opsize = insn_opsize(insn);
|
||||||
|
|
||||||
addr_src = AREG(insn, 0);
|
addr_src = AREG(insn, 0);
|
||||||
tcg_gen_subi_i32(addr_src, addr_src, opsize);
|
tcg_gen_subi_i32(addr_src, addr_src, opsize_bytes(opsize));
|
||||||
src = gen_load(s, opsize, addr_src, 1, IS_USER(s));
|
src = gen_load(s, opsize, addr_src, 1, IS_USER(s));
|
||||||
|
|
||||||
addr_dest = AREG(insn, 9);
|
addr_dest = AREG(insn, 9);
|
||||||
tcg_gen_subi_i32(addr_dest, addr_dest, opsize);
|
tcg_gen_subi_i32(addr_dest, addr_dest, opsize_bytes(opsize));
|
||||||
dest = gen_load(s, opsize, addr_dest, 1, IS_USER(s));
|
dest = gen_load(s, opsize, addr_dest, 1, IS_USER(s));
|
||||||
|
|
||||||
gen_subx(s, src, dest, opsize);
|
gen_subx(s, src, dest, opsize);
|
||||||
|
|
Loading…
Reference in New Issue