# HG changeset patch # User Mike Pavone # Date 1352006155 25200 # Node ID a4ad0e3e3e0e05c05d7279a18b59da7f58c7855e # Parent 5df303bf72e6eee2ebc51ef26d6474220d97da3a Finish mulu.w, muls.w and abcd parameter decoding diff -r 5df303bf72e6 -r a4ad0e3e3e0e 68kinst.c --- a/68kinst.c Sat Nov 03 21:38:28 2012 -0700 +++ b/68kinst.c Sat Nov 03 22:15:55 2012 -0700 @@ -407,9 +407,15 @@ if ((*istream & 0xC0) == 0xC0) { decoded->op = M68K_MULS; decoded->extra.size = OPSIZE_WORD; + decoded->dst.addr_mode = MODE_REG; + decoded->dst.params.regs.pri = m68K_reg_quick_field(*istream); istream = m68k_decode_op(istream, OPSIZE_WORD, &(decoded->src)); } else if(!(*istream & 0xF0)) { decoded->op = M68K_ABCD; + decoded->extra.size = OPSIZE_BYTE; + decoded->src.params.regs.pri = *istream & 0x7; + decoded->dst.params.regs.pri = m68K_reg_quick_field(*istream); + decoded->dst.addr_mode = decoded->src.addr_mode = (*istream & 8) ? MODE_AREG_PREDEC : MODE_REG; } else if(!(*istream & 0x30)) { decoded->op = M68K_EXG; decoded->extra.size = OPSIZE_LONG; @@ -436,6 +442,8 @@ if ((*istream & 0xC0) == 0xC0) { decoded->op = M68K_MULU; decoded->extra.size = OPSIZE_WORD; + decoded->dst.addr_mode = MODE_REG; + decoded->dst.params.regs.pri = m68K_reg_quick_field(*istream); istream = m68k_decode_op(istream, OPSIZE_WORD, &(decoded->src)); } else { decoded->op = M68K_AND;