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