From 4525e91982d9ecc8432f498ff009e10c63b80177 Mon Sep 17 00:00:00 2001 From: Mike Pavone Date: Wed, 26 Dec 2012 22:13:31 -0800 Subject: Fix decoding of and --- 68kinst.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '68kinst.c') diff --git a/68kinst.c b/68kinst.c index 5f7e549..b246e3f 100644 --- a/68kinst.c +++ b/68kinst.c @@ -907,7 +907,7 @@ uint16_t * m68k_decode(uint16_t * istream, m68kinst * decoded, uint32_t address) } } 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 @@ uint16_t * m68k_decode(uint16_t * istream, m68kinst * decoded, uint32_t address) 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)); -- cgit v1.2.3