# HG changeset patch # User Mike Pavone # Date 1356588811 28800 # Node ID 645fe435cb4801e867e79cc7bdeb76ef37c384a0 # Parent 9757b4c6c33fd49e556f10b5203aff466faf4ce6 Fix decoding of and diff -r 9757b4c6c33f -r 645fe435cb48 68kinst.c --- 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));