# HG changeset patch # User Mike Pavone # Date 1356676526 28800 # Node ID d7789186ba5e2c6a23ae0405253871d8aeb8a644 # Parent 45cd7d3e79187ad80b9c90931048a985756b33a6 Some fixes to add/addx sub/subx decoding diff -r 45cd7d3e7918 -r d7789186ba5e 68kinst.c --- a/68kinst.c Thu Dec 27 22:11:26 2012 -0800 +++ b/68kinst.c Thu Dec 27 22:35:26 2012 -0800 @@ -802,11 +802,11 @@ } break; case SUB_SUBX: - size = *istream >> 6 & 0x3; + size = (*istream >> 6) & 0x3; decoded->op = M68K_SUB; if (*istream & 0x100) { // destination, SUBA.l or SUBX - if (*istream & 0x6) { + if (*istream & 0x30 || size == OPSIZE_INVALID) { if (size == OPSIZE_INVALID) { //SUBA.l decoded->extra.size = OPSIZE_LONG; @@ -930,11 +930,11 @@ } break; case ADD_ADDX: - size = *istream >> 6 & 0x3; + size = (*istream >> 6) & 0x3; decoded->op = M68K_ADD; if (*istream & 0x100) { // destination, ADDA.l or ADDX - if (*istream & 0x6) { + if (*istream & 0x30 || size == OPSIZE_INVALID) { if (size == OPSIZE_INVALID) { //ADDA.l decoded->extra.size = OPSIZE_LONG;