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