From eb867fe78e2ac71256ded5559f04a899ae93ab89 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Sat, 28 Jul 2012 15:28:48 -0700 Subject: [PATCH] BR 3392218: Disassemble 82h opcodes The 82h opcodes are undocumented aliases for the 80h opcodes, except in 64-bit mode. We don't generate them, but let the disassembler handle them correctly. Signed-off-by: H. Peter Anvin --- insns.dat | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/insns.dat b/insns.dat index a4461a4f..2b5228f7 100644 --- a/insns.dat +++ b/insns.dat @@ -103,6 +103,7 @@ ADC rm64,imm [mi: hle o64 81+s /2 ibd,s] X64,SM,LOCK ADC mem,imm8 [mi: hle 80 /2 ib] 8086,SM,LOCK ADC mem,imm16 [mi: hle o16 81+s /2 ibw] 8086,SM,LOCK ADC mem,imm32 [mi: hle o32 81+s /2 ibd] 386,SM,LOCK +ADC rm8,imm [mi: hle 82 /2 ib] 8086,SM,LOCK,ND,NOLONG ADD mem,reg8 [mr: hle 00 /r] 8086,SM,LOCK ADD reg8,reg8 [mr: 00 /r] 8086 ADD mem,reg16 [mr: hle o16 01 /r] 8086,SM,LOCK @@ -136,6 +137,7 @@ ADD rm64,imm [mi: hle o64 81+s /0 ibd,s] X64,SM,LOCK ADD mem,imm8 [mi: hle 80 /0 ib] 8086,SM,LOCK ADD mem,imm16 [mi: hle o16 81+s /0 ibw] 8086,SM,LOCK ADD mem,imm32 [mi: hle o32 81+s /0 ibd] 386,SM,LOCK +ADD rm8,imm [mi: hle 82 /0 ib] 8086,SM,LOCK,ND,NOLONG AND mem,reg8 [mr: hle 20 /r] 8086,SM,LOCK AND reg8,reg8 [mr: 20 /r] 8086 AND mem,reg16 [mr: hle o16 21 /r] 8086,SM,LOCK @@ -169,6 +171,7 @@ AND rm64,imm [mi: hle o64 81+s /4 ibd,s] X64,SM,LOCK AND mem,imm8 [mi: hle 80 /4 ib] 8086,SM,LOCK AND mem,imm16 [mi: hle o16 81+s /4 ibw] 8086,SM,LOCK AND mem,imm32 [mi: hle o32 81+s /4 ibd] 386,SM,LOCK +AND rm8,imm [mi: hle 82 /4 ib] 8086,SM,LOCK,ND,NOLONG ARPL mem,reg16 [mr: 63 /r] 286,PROT,SM,NOLONG ARPL reg16,reg16 [mr: 63 /r] 286,PROT,NOLONG BB0_RESET void [ 0f 3a] PENT,CYRIX,ND @@ -298,6 +301,7 @@ CMP rm64,imm [mi: o64 81+s /7 ibd,s] X64,SM CMP mem,imm8 [mi: 80 /7 ib] 8086,SM CMP mem,imm16 [mi: o16 81+s /7 ibw] 8086,SM CMP mem,imm32 [mi: o32 81+s /7 ibd] 386,SM +CMP rm8,imm [mi: 82 /7 ib] 8086,SM,ND,NOLONG CMPSB void [ repe a6] 8086 CMPSD void [ repe o32 a7] 386 CMPSQ void [ repe o64 a7] X64 @@ -911,6 +915,7 @@ OR rm64,imm [mi: hle o64 81+s /1 ibd,s] X64,SM,LOCK OR mem,imm8 [mi: hle 80 /1 ib] 8086,SM,LOCK OR mem,imm16 [mi: hle o16 81+s /1 ibw] 8086,SM,LOCK OR mem,imm32 [mi: hle o32 81+s /1 ibd] 386,SM,LOCK +OR rm8,imm [mi: hle 82 /1 ib] 8086,SM,LOCK,ND,NOLONG OUT imm,reg_al [i-: e6 ib,u] 8086,SB OUT imm,reg_ax [i-: o16 e7 ib,u] 8086,SB OUT imm,reg_eax [i-: o32 e7 ib,u] 386,SB @@ -1167,6 +1172,7 @@ SBB rm64,imm [mi: hle o64 81+s /3 ibd,s] X64,SM,LOCK SBB mem,imm8 [mi: hle 80 /3 ib] 8086,SM,LOCK SBB mem,imm16 [mi: hle o16 81+s /3 ibw] 8086,SM,LOCK SBB mem,imm32 [mi: hle o32 81+s /3 ibd] 386,SM,LOCK +SBB rm8,imm [mi: hle 82 /3 ib] 8086,SM,LOCK,ND,NOLONG SCASB void [ repe ae] 8086 SCASD void [ repe o32 af] 386 SCASQ void [ repe o64 af] X64 @@ -1283,6 +1289,7 @@ SUB rm64,imm [mi: hle o64 81+s /5 ibd,s] X64,SM,LOCK SUB mem,imm8 [mi: hle 80 /5 ib] 8086,SM,LOCK SUB mem,imm16 [mi: hle o16 81+s /5 ibw] 8086,SM,LOCK SUB mem,imm32 [mi: hle o32 81+s /5 ibd] 386,SM,LOCK +SUB rm8,imm [mi: hle 82 /5 ib] 8086,SM,LOCK,ND,NOLONG SVDC mem80,reg_sreg [mr: 0f 78 /r] 486,CYRIX,SMM SVLDT mem80 [m: 0f 7a /0] 486,CYRIX,SMM,ND SVTS mem80 [m: 0f 7c /0] 486,CYRIX,SMM @@ -1413,6 +1420,7 @@ XOR rm64,imm [mi: hle o64 81+s /6 ibd,s] X64,SM,LOCK XOR mem,imm8 [mi: hle 80 /6 ib] 8086,SM,LOCK XOR mem,imm16 [mi: hle o16 81+s /6 ibw] 8086,SM,LOCK XOR mem,imm32 [mi: hle o32 81+s /6 ibd] 386,SM,LOCK +XOR rm8,imm [mi: hle 82 /6 ib] 8086,SM,LOCK,ND,NOLONG CMOVcc reg16,mem [rm: o16 0f 40+c /r] P6,SM CMOVcc reg16,reg16 [rm: o16 0f 40+c /r] P6 CMOVcc reg32,mem [rm: o32 0f 40+c /r] P6,SM -- 2.11.4.GIT