summaryrefslogtreecommitdiff
path: root/m68k_core_x86.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2015-06-22 22:00:02 -0700
committerMichael Pavone <pavone@retrodev.com>2015-06-22 22:00:02 -0700
commit62f46efe85292831385d27ee80f1220e661cc982 (patch)
tree281256392f9632b561e3cf8b780740143f0d1788 /m68k_core_x86.c
parent67e7b127d579b5db3d8dffbff045c037569bcd31 (diff)
Fix negative offsets in calc_areg_displace
Diffstat (limited to 'm68k_core_x86.c')
-rw-r--r--m68k_core_x86.c2
1 files changed, 1 insertions, 1 deletions
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)