# HG changeset patch # User Mike Pavone # Date 1356848573 28800 # Node ID 4e45d75501cf2f1a3a4e4449b2a3c3a85bc8d404 # Parent dc5fc3adf705b2d272684150fd94b507efd5cb35 Fix check in translate_m68k_src that deals with instructions for which both operands are registers that are not mapped to a native x86-64 register diff -r dc5fc3adf705 -r 4e45d75501cf m68k_to_x86.c --- a/m68k_to_x86.c Sat Dec 29 22:11:28 2012 -0800 +++ b/m68k_to_x86.c Sat Dec 29 22:22:53 2012 -0800 @@ -110,7 +110,7 @@ //We only get one memory parameter, so if the dst operand is a register in memory, //we need to copy this to a temp register first reg = native_reg(&(inst->dst), opts); - if (reg >= 0 || inst->dst.addr_mode == MODE_UNUSED || (inst->dst.addr_mode != MODE_REG && inst->dst.addr_mode == MODE_AREG) + if (reg >= 0 || inst->dst.addr_mode == MODE_UNUSED || (inst->dst.addr_mode != MODE_REG && inst->dst.addr_mode != MODE_AREG) || inst->op == M68K_EXG) { ea->mode = MODE_REG_DISPLACE8;