Mercurial > repos > blastem
comparison 68kinst.c @ 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 | af26a1ce92f7 |
children | b81428ef0396 |
comparison
equal
deleted
inserted
replaced
1344:6372de4da179 | 1345:696a029d09e9 |
---|---|
902 } else { | 902 } else { |
903 decoded->op = M68K_JSR; | 903 decoded->op = M68K_JSR; |
904 } | 904 } |
905 decoded->extra.size = OPSIZE_UNSIZED; | 905 decoded->extra.size = OPSIZE_UNSIZED; |
906 istream = m68k_decode_op(istream, OPSIZE_UNSIZED, &(decoded->src)); | 906 istream = m68k_decode_op(istream, OPSIZE_UNSIZED, &(decoded->src)); |
907 if (!istream) { | 907 if ( |
908 !istream | |
909 || (decoded->src.addr_mode < MODE_AREG_DISPLACE && decoded->src.addr_mode != MODE_AREG_INDIRECT) | |
910 || decoded->src.addr_mode == MODE_IMMEDIATE | |
911 ) { | |
908 decoded->op = M68K_INVALID; | 912 decoded->op = M68K_INVALID; |
909 break; | 913 break; |
910 } | 914 } |
911 } else { | 915 } else { |
912 //it would appear bit 6 needs to be set for it to be a valid instruction here | 916 //it would appear bit 6 needs to be set for it to be a valid instruction here |