diff options
author | Mike Pavone <pavone@retrodev.com> | 2012-12-27 18:21:10 -0800 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2012-12-27 18:21:10 -0800 |
commit | ebbab3cb4d9f149cd43528b71d3fcb1497626a32 (patch) | |
tree | 82ce943ca6adfd332612e6d68f0de609547f096a /68kinst.c | |
parent | 346cbc52292d8b0fbb25df451b07d44d40258746 (diff) |
Implement EXT, add some fixes to LINK/UNLK
Diffstat (limited to '68kinst.c')
-rw-r--r-- | 68kinst.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -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 |