|
@@ -154,9 +154,16 @@ static u16 opcode_table[256] = {
|
|
0, 0, ByteOp | ImplicitOps | Mov | String, ImplicitOps | Mov | String,
|
|
0, 0, ByteOp | ImplicitOps | Mov | String, ImplicitOps | Mov | String,
|
|
ByteOp | ImplicitOps | Mov | String, ImplicitOps | Mov | String,
|
|
ByteOp | ImplicitOps | Mov | String, ImplicitOps | Mov | String,
|
|
ByteOp | ImplicitOps | String, ImplicitOps | String,
|
|
ByteOp | ImplicitOps | String, ImplicitOps | String,
|
|
- /* 0xB0 - 0xBF */
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
- DstReg | SrcImm | Mov, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
|
+ /* 0xB0 - 0xB7 */
|
|
|
|
+ ByteOp | DstReg | SrcImm | Mov, ByteOp | DstReg | SrcImm | Mov,
|
|
|
|
+ ByteOp | DstReg | SrcImm | Mov, ByteOp | DstReg | SrcImm | Mov,
|
|
|
|
+ ByteOp | DstReg | SrcImm | Mov, ByteOp | DstReg | SrcImm | Mov,
|
|
|
|
+ ByteOp | DstReg | SrcImm | Mov, ByteOp | DstReg | SrcImm | Mov,
|
|
|
|
+ /* 0xB8 - 0xBF */
|
|
|
|
+ DstReg | SrcImm | Mov, DstReg | SrcImm | Mov,
|
|
|
|
+ DstReg | SrcImm | Mov, DstReg | SrcImm | Mov,
|
|
|
|
+ DstReg | SrcImm | Mov, DstReg | SrcImm | Mov,
|
|
|
|
+ DstReg | SrcImm | Mov, DstReg | SrcImm | Mov,
|
|
/* 0xC0 - 0xC7 */
|
|
/* 0xC0 - 0xC7 */
|
|
ByteOp | DstMem | SrcImm | ModRM, DstMem | SrcImmByte | ModRM,
|
|
ByteOp | DstMem | SrcImm | ModRM, DstMem | SrcImmByte | ModRM,
|
|
0, ImplicitOps | Stack, 0, 0,
|
|
0, ImplicitOps | Stack, 0, 0,
|
|
@@ -1660,7 +1667,7 @@ special_insn:
|
|
case 0xae ... 0xaf: /* scas */
|
|
case 0xae ... 0xaf: /* scas */
|
|
DPRINTF("Urk! I don't handle SCAS.\n");
|
|
DPRINTF("Urk! I don't handle SCAS.\n");
|
|
goto cannot_emulate;
|
|
goto cannot_emulate;
|
|
- case 0xb8: /* mov r, imm */
|
|
|
|
|
|
+ case 0xb0 ... 0xbf: /* mov r, imm */
|
|
goto mov;
|
|
goto mov;
|
|
case 0xc0 ... 0xc1:
|
|
case 0xc0 ... 0xc1:
|
|
emulate_grp2(ctxt);
|
|
emulate_grp2(ctxt);
|