Mercurial > repos > blastem
diff 68kinst.c @ 93:f63b0e58e2d5
Implement EXT, add some fixes to LINK/UNLK
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 27 Dec 2012 18:21:10 -0800 |
parents | 8c446fc19cc0 |
children | a668a35a3463 |
line wrap: on
line diff
--- a/68kinst.c Thu Dec 27 10:40:03 2012 -0800 +++ b/68kinst.c Thu Dec 27 18:21:10 2012 -0800 @@ -527,14 +527,14 @@ 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 @@ 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