diff options
author | Mike Pavone <pavone@retrodev.com> | 2012-12-29 22:22:53 -0800 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2012-12-29 22:22:53 -0800 |
commit | 5610f4e0179509ceca3fbf5e376bf212321605ff (patch) | |
tree | d673b0b2de91b879c0aaa110eb5447d0364ceae4 | |
parent | 02f56f5ca59506d7d81a302511f59cb8d122e764 (diff) |
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
-rw-r--r-- | m68k_to_x86.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/m68k_to_x86.c b/m68k_to_x86.c index b425084..941b60d 100644 --- a/m68k_to_x86.c +++ b/m68k_to_x86.c @@ -110,7 +110,7 @@ uint8_t * translate_m68k_src(m68kinst * inst, x86_ea * ea, uint8_t * out, x86_68 //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; |