summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2014-10-15 00:30:19 -0700
committerMichael Pavone <pavone@retrodev.com>2014-10-15 00:30:19 -0700
commit56416afb69f0aa098e252e63c65ce6cd7bcc64c6 (patch)
tree50026fe7fe3a7b43b7ec29127ce58eb9b7cd26bd
parent1718b42809a67d9634b4cf5ac7126b03e3209386 (diff)
Fix interpretation of moves direction field
-rw-r--r--68kinst.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/68kinst.c b/68kinst.c
index 4842758..eaeb2e4 100644
--- a/68kinst.c
+++ b/68kinst.c
@@ -610,13 +610,13 @@ uint16_t * m68k_decode(uint16_t * istream, m68kinst * decoded, uint32_t address)
reg = immed >> 12 & 0x7;
opmode = immed & 0x8000 ? MODE_AREG : MODE_REG;
if (immed & 0x800) {
- 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));
+ } 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;
}
#endif
break;