# HG changeset patch # User Michael Pavone # Date 1413358219 25200 # Node ID 08d0e3e7d0d86ab99e9d3bdf7bd065f7160ec559 # Parent 66857bd2df0b063647a2b3f4b945e15b45327f6e Fix interpretation of moves direction field diff -r 66857bd2df0b -r 08d0e3e7d0d8 68kinst.c --- a/68kinst.c Wed Oct 15 00:26:57 2014 -0700 +++ b/68kinst.c Wed Oct 15 00:30:19 2014 -0700 @@ -610,13 +610,13 @@ reg = immed >> 12 & 0x7; opmode = immed & 0x8000 ? MODE_AREG : MODE_REG; if (immed & 0x800) { + decoded->src.addr_mode = opmode; + decoded->src.params.regs.pri = reg; + m68k_decode_op_ex(istream, *start >> 3 & 0x7, *start & 0x7, decoded->extra.size, &(decoded->dst)); + } else { m68k_decode_op_ex(istream, *start >> 3 & 0x7, *start & 0x7, decoded->extra.size, &(decoded->src)); decoded->dst.addr_mode = opmode; decoded->dst.params.regs.pri = reg; - } else { - decoded->src.addr_mode = opmode; - decoded->src.params.regs.pri = reg; - m68k_decode_op_ex(istream, *start >> 3 & 0x7, *start & 0x7, decoded->extra.size, &(decoded->dst)); } #endif break;