summaryrefslogtreecommitdiff
path: root/68kinst.c
diff options
context:
space:
mode:
authorMike Pavone <pavone@retrodev.com>2013-01-09 22:31:07 -0800
committerMike Pavone <pavone@retrodev.com>2013-01-09 22:31:07 -0800
commitc9f76989d03409e5323871979d34053fc771c86d (patch)
treee80b946ec8d96daab0152b713a55c8bf3ef8ba02 /68kinst.c
parente50421bfff3bf6fe2313525d3bc5d103b7f9e98d (diff)
Fix (a7)+ src when size is byte, fix trap return address, make div with areg src decoded to invalid
Diffstat (limited to '68kinst.c')
-rw-r--r--68kinst.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/68kinst.c b/68kinst.c
index a42df45..d0e8c20 100644
--- a/68kinst.c
+++ b/68kinst.c
@@ -876,7 +876,7 @@ uint16_t * m68k_decode(uint16_t * istream, m68kinst * decoded, uint32_t address)
decoded->dst.addr_mode = MODE_REG;
decoded->dst.params.regs.pri = (*istream >> 9) & 0x7;
istream = m68k_decode_op(istream, OPSIZE_WORD, &(decoded->src));
- if (!istream) {
+ if (!istream || decoded->src.addr_mode == MODE_AREG) {
decoded->op = M68K_INVALID;
return start+1;
}
@@ -901,7 +901,7 @@ uint16_t * m68k_decode(uint16_t * istream, m68kinst * decoded, uint32_t address)
decoded->dst.addr_mode = MODE_REG;
decoded->dst.params.regs.pri = (*istream >> 9) & 0x7;
istream = m68k_decode_op(istream, OPSIZE_WORD, &(decoded->src));
- if (!istream) {
+ if (!istream || decoded->src.addr_mode == MODE_AREG) {
decoded->op = M68K_INVALID;
return start+1;
}