From ebbab3cb4d9f149cd43528b71d3fcb1497626a32 Mon Sep 17 00:00:00 2001 From: Mike Pavone Date: Thu, 27 Dec 2012 18:21:10 -0800 Subject: Implement EXT, add some fixes to LINK/UNLK --- 68kinst.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to '68kinst.c') diff --git a/68kinst.c b/68kinst.c index 64d22e2..c28a103 100644 --- a/68kinst.c +++ b/68kinst.c @@ -527,14 +527,14 @@ uint16_t * m68k_decode(uint16_t * istream, m68kinst * decoded, uint32_t address) break; case 0x10: decoded->op = M68K_EXT; - decoded->src.addr_mode = MODE_REG; - decoded->src.params.regs.pri = *istream & 0x7; + decoded->dst.addr_mode = MODE_REG; + decoded->dst.params.regs.pri = *istream & 0x7; decoded->extra.size = OPSIZE_WORD; break; case 0x18: decoded->op = M68K_EXT; - decoded->src.addr_mode = MODE_REG; - decoded->src.params.regs.pri = *istream & 0x7; + decoded->dst.addr_mode = MODE_REG; + decoded->dst.params.regs.pri = *istream & 0x7; decoded->extra.size = OPSIZE_LONG; break; case 0x38: @@ -607,7 +607,7 @@ uint16_t * m68k_decode(uint16_t * istream, m68kinst * decoded, uint32_t address) decoded->src.addr_mode = MODE_AREG; decoded->src.params.regs.pri = *istream & 0x7; decoded->dst.addr_mode = MODE_IMMEDIATE; - decoded->dst.params.immed = *(++istream); + decoded->dst.params.immed = sign_extend16(*(++istream)); break; case 3: //UNLK -- cgit v1.2.3