changeset 90:645fe435cb48

Fix decoding of and
author Mike Pavone <pavone@retrodev.com>
date Wed, 26 Dec 2012 22:13:31 -0800
parents 9757b4c6c33f
children 8c446fc19cc0
files 68kinst.c
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/68kinst.c	Wed Dec 26 22:07:44 2012 -0800
+++ b/68kinst.c	Wed Dec 26 22:13:31 2012 -0800
@@ -907,7 +907,7 @@
 				}
 			} else {
 				decoded->op = M68K_AND;
-				decoded->extra.size = (*istream >> 6);
+				decoded->extra.size = (*istream >> 6) & 0x3;
 				decoded->src.addr_mode = MODE_REG;
 				decoded->src.params.regs.pri = m68k_reg_quick_field(*istream);
 				istream = m68k_decode_op(istream, decoded->extra.size, &(decoded->dst));
@@ -921,7 +921,7 @@
 				istream = m68k_decode_op(istream, OPSIZE_WORD, &(decoded->src));
 			} else {
 				decoded->op = M68K_AND;
-				decoded->extra.size = (*istream >> 6);
+				decoded->extra.size = (*istream >> 6) & 0x3;
 				decoded->dst.addr_mode = MODE_REG;
 				decoded->dst.params.regs.pri = m68k_reg_quick_field(*istream);
 				istream = m68k_decode_op(istream, decoded->extra.size, &(decoded->src));