66,67c66,73
< 0x6: push_ES();
< 0x7: pop_ES();
---
> 0x6: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: push_ES();
> }
> 0x7: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: pop_ES();
> }
77c83,86
< 0x6: push_CS();
---
> 0x6: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: push_CS();
> }
89,90c98,105
< 0x6: push_SS();
< 0x7: pop_SS();
---
> 0x6: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: push_SS();
> }
> 0x7: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: pop_SS();
> }
99,100c114,121
< 0x6: push_DS();
< 0x7: pop_DS();
---
> 0x6: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: push_DS();
> }
> 0x7: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: pop_DS();
> }
111c132,135
< 0x7: daa();
---
> 0x7: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: daa();
> }
129c153,156
< 0x7: aaa();
---
> 0x7: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: aaa();
> }
143c170,173
< 0x7: aas();
---
> 0x7: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: aas();
> }
165,173c195,215
< 0x0A: decode OPCODE_OP_BOTTOM3 {
< 0x0: Inst::PUSH(rAx);
< 0x1: push_rCX();
< 0x2: push_rDX();
< 0x3: push_rBX();
< 0x4: Inst::PUSH(rSP);
< 0x5: push_rBP();
< 0x6: push_rSI();
< 0x7: push_rDI();
---
> format Inst {
> 0x0A: decode OPCODE_OP_BOTTOM3 {
> 0x0: PUSH(rAx);
> 0x1: PUSH(rCx);
> 0x2: PUSH(rDx);
> 0x3: PUSH(rBx);
> 0x4: PUSH(rSP);
> 0x5: PUSH(rBP);
> 0x6: PUSH(rSI);
> 0x7: PUSH(rDI);
> }
> 0x0B: decode OPCODE_OP_BOTTOM3 {
> 0x0: POP(rAx);
> 0x1: POP(rCx);
> 0x2: POP(rDx);
> 0x3: POP(rBx);
> 0x4: POP(rSP);
> 0x5: POP(rBP);
> 0x6: POP(rSI);
> 0x7: POP(rDI);
> }
175,184d216
< 0x0B: decode OPCODE_OP_BOTTOM3 {
< 0x0: pop_rAX();
< 0x1: pop_rCX();
< 0x2: pop_rDX();
< 0x3: pop_rBX();
< 0x4: pop_rSP();
< 0x5: pop_rBP();
< 0x6: Inst::POP(rSI);
< 0x7: pop_rDI();
< }
186,188c218,229
< 0x0: pusha();
< 0x1: popa();
< 0x2: bound_Gv_Ma();
---
> 0x0: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: pusha();
> }
> 0x1: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: popa();
> }
> 0x2: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: bound_Gv_Ma();
> }
232c273,276
< 0x2: group1_Eb_Ib();
---
> 0x2: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: group1_Eb_Ib();
> }
272c316,319
< 0x2: call_Ap();
---
> 0x2: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: call_Ap();
> }
276,277c323,332
< 0x6: sahf();
< 0x7: lahf();
---
> //Both of these should be illegal only if CPUID.AHF64=0,
> //according to sandpile.org
> 0x6: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: sahf();
> }
> 0x7: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: lahf();
> }
324,325c379,386
< 0x4: les_Gz_Mp();
< 0x5: lds_Gz_Mp();
---
> 0x4: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: les_Gz_Mp();
> }
> 0x5: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: lds_Gz_Mp();
> }
342c403,406
< 0x6: into();
---
> 0x6: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: into();
> }
350,352c414,425
< 0x4: aam_Ib();
< 0x5: aad_Ib();
< 0x6: salc();
---
> 0x4: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: aam_Ib();
> }
> 0x5: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: aad_Ib();
> }
> 0x6: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: salc();
> }
376c449
< 0x0: call_Jz();
---
> 0x0: Inst::CALL(Jz);
378c451,454
< 0x2: jmp_Ap();
---
> 0x2: decode MODE_SUBMODE {
> 0x0: This_should_be_an_illegal_instruction();
> default: jmp_Ap();
> }