From 6183c3ba67d069c0ec8619248cc39ae76958ebdc Mon Sep 17 00:00:00 2001 From: Mike Pavone Date: Wed, 9 Jan 2013 21:08:37 -0800 Subject: Fix signed division with negative result, fix address reg destination with word-sized operand, fix cmpm decoding and code generation, fix unbalanced pop in bit instructions --- 68kinst.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '68kinst.c') diff --git a/68kinst.c b/68kinst.c index efbb2ae..a42df45 100644 --- a/68kinst.c +++ b/68kinst.c @@ -1006,7 +1006,8 @@ uint16_t * m68k_decode(uint16_t * istream, m68kinst * decoded, uint32_t address) decoded->op = M68K_INVALID; return start+1; } - if (decoded->src.addr_mode == MODE_AREG) { + decoded->extra.size = size; + if (decoded->dst.addr_mode == MODE_AREG) { //CMPM decoded->src.addr_mode = decoded->dst.addr_mode = MODE_AREG_POSTINC; decoded->src.params.regs.pri = decoded->dst.params.regs.pri; @@ -1014,7 +1015,6 @@ uint16_t * m68k_decode(uint16_t * istream, m68kinst * decoded, uint32_t address) } else { //EOR decoded->op = M68K_EOR; - decoded->extra.size = size; decoded->src.addr_mode = MODE_REG; decoded->src.params.regs.pri = m68k_reg_quick_field(*istream); } -- cgit v1.2.3