Message ID | 20180418064152.24606.71975.stgit@pasha-VirtualBox (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Le 18/04/2018 à 08:41, Pavel Dovgalyuk a écrit : > 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> > --- > target/m68k/translate.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/target/m68k/translate.c b/target/m68k/translate.c > index 6beaf9e..e407ba2 100644 > --- a/target/m68k/translate.c > +++ b/target/m68k/translate.c > @@ -3166,11 +3166,11 @@ DISAS_INSN(subx_mem) > opsize = insn_opsize(insn); > > 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)); > > 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)); > > gen_subx(s, src, dest, opsize); > Reviewed-by: Laurent Vivier <laurent@vivier.eu>
diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 6beaf9e..e407ba2 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -3166,11 +3166,11 @@ DISAS_INSN(subx_mem) opsize = insn_opsize(insn); 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)); 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)); gen_subx(s, src, dest, opsize);
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> --- target/m68k/translate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)