summaryrefslogtreecommitdiff
path: root/68kinst.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-02-28 21:59:58 -0800
committerMichael Pavone <pavone@retrodev.com>2017-02-28 21:59:58 -0800
commitf38bb8e55d1df64f8fb85d7dc58eb2902198ed97 (patch)
treeafa2e7fd7dde87c4d588058b0fe0b4e5d11cac4c /68kinst.c
parent9365670c39ba8aa2f949e7f4dfae7dc0e1be16d8 (diff)
immediate and predecrement are illegal source address modes for movem. Fixes ticket:8 and ticket:9
Diffstat (limited to '68kinst.c')
-rw-r--r--68kinst.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/68kinst.c b/68kinst.c
index e406872..a753765 100644
--- a/68kinst.c
+++ b/68kinst.c
@@ -692,7 +692,7 @@ uint16_t * m68k_decode(uint16_t * istream, m68kinst * decoded, uint32_t address)
decoded->dst.addr_mode = MODE_REG;
decoded->dst.params.immed = *(++istream);
istream = m68k_decode_op_ex(istream, opmode, reg, decoded->extra.size, &(decoded->src));
- if (!istream) {
+ if (!istream || decoded->src.addr_mode == MODE_AREG_PREDEC || decoded->src.addr_mode == MODE_IMMEDIATE) {
decoded->op = M68K_INVALID;
break;
}