Mercurial > repos > blastem
changeset 1345:696a029d09e9
Decode JMP or JSR with an invalid addressing mode as an invalid instruction
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 05 May 2017 23:41:14 -0700 |
parents | 6372de4da179 |
children | f7ca42e020fd |
files | 68kinst.c |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/68kinst.c Fri May 05 22:08:30 2017 -0700 +++ b/68kinst.c Fri May 05 23:41:14 2017 -0700 @@ -904,7 +904,11 @@ } decoded->extra.size = OPSIZE_UNSIZED; istream = m68k_decode_op(istream, OPSIZE_UNSIZED, &(decoded->src)); - if (!istream) { + if ( + !istream + || (decoded->src.addr_mode < MODE_AREG_DISPLACE && decoded->src.addr_mode != MODE_AREG_INDIRECT) + || decoded->src.addr_mode == MODE_IMMEDIATE + ) { decoded->op = M68K_INVALID; break; }