# HG changeset patch # User Michael Pavone # Date 1435035602 25200 # Node ID cf09b189a0cabfd607a7b22d5b2dcf32cc210dee # Parent 59b499f6b24f086c028b7b46bfcfb525af9aee34 Fix negative offsets in calc_areg_displace diff -r 59b499f6b24f -r cf09b189a0ca m68k_core_x86.c --- a/m68k_core_x86.c Mon Jun 22 09:22:18 2015 -0700 +++ b/m68k_core_x86.c Mon Jun 22 22:00:02 2015 -0700 @@ -317,7 +317,7 @@ 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)