From 62f46efe85292831385d27ee80f1220e661cc982 Mon Sep 17 00:00:00 2001 From: Michael Pavone Date: Mon, 22 Jun 2015 22:00:02 -0700 Subject: Fix negative offsets in calc_areg_displace --- m68k_core_x86.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'm68k_core_x86.c') diff --git a/m68k_core_x86.c b/m68k_core_x86.c index 7b542da..64e8866 100644 --- a/m68k_core_x86.c +++ b/m68k_core_x86.c @@ -317,7 +317,7 @@ void add_dreg_native(m68k_options *opts, uint8_t reg, uint8_t native_reg) void calc_areg_displace(m68k_options *opts, m68k_op_info *op, uint8_t native_reg) { areg_to_native(opts, op->params.regs.pri, native_reg); - add_ir(&opts->gen.code, op->params.regs.displacement, native_reg, SZ_D); + add_ir(&opts->gen.code, op->params.regs.displacement & 0x8000 ? op->params.regs.displacement | 0xFFFF0000 : op->params.regs.displacement, native_reg, SZ_D); } void calc_index_disp8(m68k_options *opts, m68k_op_info *op, uint8_t native_reg) -- cgit v1.2.3