changeset 101:d7789186ba5e

Some fixes to add/addx sub/subx decoding
author Mike Pavone <pavone@retrodev.com>
date Thu, 27 Dec 2012 22:35:26 -0800
parents 45cd7d3e7918
children bfaca67eeb78
files 68kinst.c
diffstat 1 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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) {
 			//<ea> 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) {
 			//<ea> 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;