summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2016-10-03 23:35:25 -0700
committerH. Peter Anvin <hpa@zytor.com>2016-10-03 23:35:25 -0700
commit9b630b4361f558c56dac83e5dd620760f4ab77d7 (patch)
tree957972010d0bbd38896e3a8a2662a9a1c573e95c
parenta617487b508967e950f18a790181bbe0adc94d7d (diff)
downloadnasm-9b630b4361f558c56dac83e5dd620760f4ab77d7.tar.gz
insns: add OBSOLETE flag for instructions removed from architecture
There aren't that many instructions which have been rmeoved from the x86 architecture, but there is a handful. Flag those with an OBSOLETE flag. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r--insns-iflags.pl1
-rw-r--r--insns.dat34
2 files changed, 18 insertions, 17 deletions
diff --git a/insns-iflags.pl b/insns-iflags.pl
index 1cd7a4c3..cad40b77 100644
--- a/insns-iflags.pl
+++ b/insns-iflags.pl
@@ -136,6 +136,7 @@ my %insns_flag_bit = (
"AVX512BW" => [ 73, "AVX-512 Byte and Word"],
"AVX512IFMA" => [ 74, "AVX-512 IFMA instructions"],
"AVX512VBMI" => [ 75, "AVX-512 VBMI instructions"],
+ "OBSOLETE" => [ 93, "Instruction removed from architecture"],
"VEX" => [ 94, "VEX or XOP encoded instruction"],
"EVEX" => [ 95, "EVEX encoded instruction"],
diff --git a/insns.dat b/insns.dat
index e9e9230c..d6f5c72a 100644
--- a/insns.dat
+++ b/insns.dat
@@ -191,8 +191,8 @@ AND mem,imm32 [mi: hle o32 81 /4 id] 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
-BB1_RESET void [ 0f 3b] PENT,CYRIX,ND
+BB0_RESET void [ 0f 3a] PENT,CYRIX,ND,OBSOLETE
+BB1_RESET void [ 0f 3b] PENT,CYRIX,ND,OBSOLETE
BOUND reg16,mem [rm: o16 62 /r] 186,NOLONG
BOUND reg32,mem [rm: o32 62 /r] 386,NOLONG
BSF reg16,mem [rm: o16 nof3 0f bc /r] 386,SM
@@ -335,12 +335,12 @@ CMPXCHG mem,reg32 [mr: hle o32 0f b1 /r] PENT,SM,LOCK
CMPXCHG reg32,reg32 [mr: o32 0f b1 /r] PENT
CMPXCHG mem,reg64 [mr: hle o64 0f b1 /r] X64,SM,LOCK
CMPXCHG reg64,reg64 [mr: o64 0f b1 /r] X64
-CMPXCHG486 mem,reg8 [mr: 0f a6 /r] 486,SM,UNDOC,ND,LOCK
-CMPXCHG486 reg8,reg8 [mr: 0f a6 /r] 486,UNDOC,ND
-CMPXCHG486 mem,reg16 [mr: o16 0f a7 /r] 486,SM,UNDOC,ND,LOCK
-CMPXCHG486 reg16,reg16 [mr: o16 0f a7 /r] 486,UNDOC,ND
-CMPXCHG486 mem,reg32 [mr: o32 0f a7 /r] 486,SM,UNDOC,ND,LOCK
-CMPXCHG486 reg32,reg32 [mr: o32 0f a7 /r] 486,UNDOC,ND
+CMPXCHG486 mem,reg8 [mr: 0f a6 /r] 486,SM,UNDOC,ND,LOCK,OBSOLETE
+CMPXCHG486 reg8,reg8 [mr: 0f a6 /r] 486,UNDOC,ND,OBSOLETE
+CMPXCHG486 mem,reg16 [mr: o16 0f a7 /r] 486,SM,UNDOC,ND,LOCK,OBSOLETE
+CMPXCHG486 reg16,reg16 [mr: o16 0f a7 /r] 486,UNDOC,ND,OBSOLETE
+CMPXCHG486 mem,reg32 [mr: o32 0f a7 /r] 486,SM,UNDOC,ND,LOCK,OBSOLETE
+CMPXCHG486 reg32,reg32 [mr: o32 0f a7 /r] 486,UNDOC,ND,OBSOLETE
CMPXCHG8B mem [m: hle norexw 0f c7 /1] PENT,LOCK
CMPXCHG16B mem [m: o64 0f c7 /1] X64,LOCK
CPUID void [ 0f a2] PENT
@@ -585,10 +585,10 @@ FXTRACT void [ d9 f4] 8086,FPU
FYL2X void [ d9 f1] 8086,FPU
FYL2XP1 void [ d9 f9] 8086,FPU
HLT void [ f4] 8086,PRIV
-IBTS mem,reg16 [mr: o16 0f a7 /r] 386,SW,UNDOC,ND
-IBTS reg16,reg16 [mr: o16 0f a7 /r] 386,UNDOC,ND
-IBTS mem,reg32 [mr: o32 0f a7 /r] 386,SD,UNDOC,ND
-IBTS reg32,reg32 [mr: o32 0f a7 /r] 386,UNDOC,ND
+IBTS mem,reg16 [mr: o16 0f a7 /r] 386,SW,UNDOC,ND,OBSOLETE
+IBTS reg16,reg16 [mr: o16 0f a7 /r] 386,UNDOC,ND,OBSOLETE
+IBTS mem,reg32 [mr: o32 0f a7 /r] 386,SD,UNDOC,ND,OBSOLETE
+IBTS reg32,reg32 [mr: o32 0f a7 /r] 386,UNDOC,ND,OBSOLETE
ICEBP void [ f1] 386,ND
IDIV rm8 [m: f6 /7] 8086
IDIV rm16 [m: o16 f7 /7] 8086
@@ -751,8 +751,8 @@ LLDT reg16 [m: 0f 00 /2] 286,PROT,PRIV
LMSW mem [m: 0f 01 /6] 286,PRIV
LMSW mem16 [m: 0f 01 /6] 286,PRIV
LMSW reg16 [m: 0f 01 /6] 286,PRIV
-LOADALL void [ 0f 07] 386,UNDOC,ND
-LOADALL286 void [ 0f 05] 286,UNDOC,ND
+LOADALL void [ 0f 07] 386,UNDOC,ND,OBSOLETE
+LOADALL286 void [ 0f 05] 286,UNDOC,ND,OBSOLETE
LODSB void [ ac] 8086
LODSD void [ o32 ad] 386
LODSQ void [ o64 ad] X64
@@ -1016,7 +1016,7 @@ POP rm16 [m: o16 8f /0] 8086
POP rm32 [m: o32 8f /0] 386,NOLONG
POP rm64 [m: o64nw 8f /0] X64
POP reg_es [-: 07] 8086,NOLONG
-POP reg_cs [-: 0f] 8086,UNDOC,ND
+POP reg_cs [-: 0f] 8086,UNDOC,ND,OBSOLETE
POP reg_ss [-: 17] 8086,NOLONG
POP reg_ds [-: 1f] 8086,NOLONG
POP reg_fs [-: 0f a1] 386
@@ -1287,7 +1287,7 @@ SKINIT void [ 0f 01 de] X64
SMI void [ f1] 386,UNDOC
SMINT void [ 0f 38] P6,CYRIX,ND
; Older Cyrix chips had this; they had to move due to conflict with MMX
-SMINTOLD void [ 0f 7e] 486,CYRIX,ND
+SMINTOLD void [ 0f 7e] 486,CYRIX,ND,OBSOLETE
SMSW mem [m: 0f 01 /4] 286
SMSW mem16 [m: 0f 01 /4] 286
SMSW reg16 [m: o16 0f 01 /4] 286
@@ -5118,7 +5118,7 @@ WRPKRU void [ 0f 01 ef] X64,FUTURE
CLFLUSHOPT mem [m: 66 0f ae /7] FUTURE
CLWB mem [m: 66 0f ae /6] FUTURE
;# This one was killed before it saw the light of day
-PCOMMIT void [ 66 0f ae f8] FUTURE,UNDOC
+PCOMMIT void [ 66 0f ae f8] FUTURE,UNDOC,OBSOLETE
; AMD Zen v1
CLZERO void [ 0f 01 fc] FUTURE,AMD