decode: Don't fall back to memory encoding with 72-table

This commit is contained in:
Alexis Engelke
2020-06-17 20:18:26 +02:00
parent f978785df3
commit ab5e0c67c1
2 changed files with 116 additions and 116 deletions

View File

@@ -199,8 +199,10 @@ c3 NP - - - - RET DEF64 INSTR_WIDTH
c4 RM GP MEMZ - - LES ONLY32 MUSTMEM
c5 RM GP MEMZ - - LDS ONLY32 MUSTMEM
c6//0 MI GP IMM - - MOV SIZE_8 IMM_8
c6//c0+ OI GP IMM - - MOV SIZE_8 IMM_8
c6//f8 I IMM - - - XABORT IMM_8
c7//0 MI GP IMM - - MOV
c7//c0+ OI GP IMM - - MOV
c7//f8 D IMM - - - XBEGIN
# ENTER immediate handled in code
c8 I IMM32 - - - ENTER DEF64 INSTR_WIDTH
@@ -302,13 +304,13 @@ ff/6 M GP - - - PUSH DEF64
0f00/3 M GP16 - - - LTR
0f00/4 M GP - - - VERR
0f00/5 M GP - - - VERW
0f01//0 M MEMZ - - - SGDT MUSTMEM
0f01//1 M MEMZ - - - SIDT MUSTMEM
0f01//2 M MEMZ - - - LGDT MUSTMEM
0f01//3 M MEMZ - - - LIDT MUSTMEM
0f01//4 M GP16 - - - SMSW INSTR_WIDTH
0f01//0 M MEMZ - - - SGDT
0f01//1 M MEMZ - - - SIDT
0f01//2 M MEMZ - - - LGDT
0f01//3 M MEMZ - - - LIDT
0f01//4 M GP16 - - - SMSW
0f01//6 M GP16 - - - LMSW
0f01//7 M GP - - - INVLPG SIZE_8 MUSTMEM
0f01//7 M GP - - - INVLPG SIZE_8
0f01//c8 NP - - - - MONITOR
0f01//c9 NP - - - - MWAIT
0f01//ca NP - - - - CLAC
@@ -319,6 +321,8 @@ ff/6 M GP - - - PUSH DEF64
0f01//d5 NP - - - - XEND
0f01//d6 NP - - - - XTEST
0f01//d7 NP - - - - ENCLU
0f01//e0+ O GP - - - SMSW
0f01//f0+ O GP16 - - - LMSW
0f01//f8 NP - - - - SWAPGS ONLY64
0f01//f9 NP - - - - RDTSCP
0f02 RM GP GP16 - - LAR
@@ -338,10 +342,10 @@ RF3.0f09 NP - - - - WBINVD
0f0d/5 M GP8 - - - RESERVED_PREFETCH MUSTMEM
0f0d/6 M GP8 - - - RESERVED_PREFETCH MUSTMEM
0f0d/7 M GP8 - - - RESERVED_PREFETCH MUSTMEM
0f18//0 M GP8 - - - PREFETCHNTA MUSTMEM
0f18//1 M GP8 - - - PREFETCHT0 MUSTMEM
0f18//2 M GP8 - - - PREFETCHT1 MUSTMEM
0f18//3 M GP8 - - - PREFETCHT2 MUSTMEM
0f18//0 M GP8 - - - PREFETCHNTA
0f18//1 M GP8 - - - PREFETCHT0
0f18//2 M GP8 - - - PREFETCHT1
0f18//3 M GP8 - - - PREFETCHT2
0f18//4 M GP - - - RESERVED_NOP
0f18//5 M GP - - - RESERVED_NOP
0f18//6 M GP - - - RESERVED_NOP
@@ -350,6 +354,10 @@ RF3.0f09 NP - - - - WBINVD
0f18//c8+ O GP - - - RESERVED_NOP
0f18//d0+ O GP - - - RESERVED_NOP
0f18//d8+ O GP - - - RESERVED_NOP
0f18//e0+ O GP - - - RESERVED_NOP
0f18//e8+ O GP - - - RESERVED_NOP
0f18//f0+ O GP - - - RESERVED_NOP
0f18//f8+ O GP - - - RESERVED_NOP
0f1f M GP - - - NOP
0f20 MR GP32 CR - - MOV_CR ONLY32
0f20 MR GP64 CR - - MOV_CR ONLY64 DEF64
@@ -454,7 +462,7 @@ RF3.0fbd RM GP GP - - LZCNT
0fc0 MR GP GP - - XADD SIZE_8 LOCK
0fc1 MR GP GP - - XADD LOCK
NP.0fc3 MR GP GP - - MOVNTI MUSTMEM
0fc7//1 M MEMZ - - - CMPXCHGD LOCK MUSTMEM
0fc7//1 M MEMZ - - - CMPXCHGD LOCK
0fc8+ O GP - - - BSWAP
0fff RM GP GP - - UD0
#
@@ -697,10 +705,10 @@ F2.0f7d RM XMM XMM - - SSE_HSUBPS
F3.0f7e RM XMM64 XMM64 - - SSE_MOVQ
66.0f7f MR XMM XMM - - SSE_MOVDQA
F3.0f7f MR XMM XMM - - SSE_MOVDQU
NP.0fae//0 M MEMZ - - - FXSAVE MUSTMEM
NP.0fae//1 M MEMZ - - - FXRSTOR MUSTMEM
NP.0fae//2 M GP32 - - - LDMXCSR MUSTMEM
NP.0fae//3 M GP32 - - - STMXCSR MUSTMEM
NP.0fae//0 M MEMZ - - - FXSAVE
NP.0fae//1 M MEMZ - - - FXRSTOR
NP.0fae//2 M GP32 - - - LDMXCSR
NP.0fae//3 M GP32 - - - STMXCSR
NP.0fae//e8+ NP - - - - LFENCE
NP.0fae//f0+ NP - - - - MFENCE
NP.0fae//f8+ NP - - - - SFENCE
@@ -963,16 +971,16 @@ VEX.F3.0f6f RM XMM XMM - - VMOVDQU
VEX.66.0f70 RMI XMM XMM IMM8 - VPSHUFD IMM_8
VEX.F3.0f70 RMI XMM XMM IMM8 - VPSHUFHW IMM_8
VEX.F2.0f70 RMI XMM XMM IMM8 - VPSHUFLW IMM_8
VEX.66.0f71/2 VMI XMM XMM IMM8 - VPSRLW IMM_8
VEX.66.0f71/4 VMI XMM XMM IMM8 - VPSRAW IMM_8
VEX.66.0f71/6 VMI XMM XMM IMM8 - VPSLLW IMM_8
VEX.66.0f72/2 VMI XMM XMM IMM8 - VPSRLD IMM_8
VEX.66.0f72/4 VMI XMM XMM IMM8 - VPSRAD IMM_8
VEX.66.0f72/6 VMI XMM XMM IMM8 - VPSLLD IMM_8
VEX.66.0f73/2 VMI XMM XMM IMM8 - VPSRLQ IMM_8
VEX.66.0f73/3 VMI XMM XMM IMM8 - VPSRLDQ IMM_8
VEX.66.0f73/6 VMI XMM XMM IMM8 - VPSLLQ IMM_8
VEX.66.0f73/7 VMI XMM XMM IMM8 - VPSLLDQ IMM_8
VEX.66.0f71/2 VMI XMM XMM IMM8 - VPSRLW IMM_8 NOMEM
VEX.66.0f71/4 VMI XMM XMM IMM8 - VPSRAW IMM_8 NOMEM
VEX.66.0f71/6 VMI XMM XMM IMM8 - VPSLLW IMM_8 NOMEM
VEX.66.0f72/2 VMI XMM XMM IMM8 - VPSRLD IMM_8 NOMEM
VEX.66.0f72/4 VMI XMM XMM IMM8 - VPSRAD IMM_8 NOMEM
VEX.66.0f72/6 VMI XMM XMM IMM8 - VPSLLD IMM_8 NOMEM
VEX.66.0f73/2 VMI XMM XMM IMM8 - VPSRLQ IMM_8 NOMEM
VEX.66.0f73/3 VMI XMM XMM IMM8 - VPSRLDQ IMM_8 NOMEM
VEX.66.0f73/6 VMI XMM XMM IMM8 - VPSLLQ IMM_8 NOMEM
VEX.66.0f73/7 VMI XMM XMM IMM8 - VPSLLDQ IMM_8 NOMEM
VEX.66.0f74 RVM XMM XMM XMM - VPCMPEQB
VEX.66.0f75 RVM XMM XMM XMM - VPCMPEQW
VEX.66.0f76 RVM XMM XMM XMM - VPCMPEQD
@@ -1249,14 +1257,14 @@ VEX.F3.L0.0f38f7 RMV GP GP GP - SARX
F3.0f38f6 RM GP GP - - ADOX
#
# FPU
d8//0 M FPU - - - FADD_F32 MUSTMEM
d8//1 M FPU - - - FMUL_F32 MUSTMEM
d8//2 M FPU - - - FCOM_F32 MUSTMEM
d8//3 M FPU - - - FCOMP_F32 MUSTMEM
d8//4 M FPU - - - FSUB_F32 MUSTMEM
d8//5 M FPU - - - FSUBR_F32 MUSTMEM
d8//6 M FPU - - - FDIV_F32 MUSTMEM
d8//7 M FPU - - - FDIVR_F32 MUSTMEM
d8//0 M FPU - - - FADD_F32
d8//1 M FPU - - - FMUL_F32
d8//2 M FPU - - - FCOM_F32
d8//3 M FPU - - - FCOMP_F32
d8//4 M FPU - - - FSUB_F32
d8//5 M FPU - - - FSUBR_F32
d8//6 M FPU - - - FDIV_F32
d8//7 M FPU - - - FDIVR_F32
d8//c0+ AO FPU FPU - - FADD
d8//c8+ AO FPU FPU - - FMUL
d8//d0+ AO FPU FPU - - FCOM
@@ -1265,13 +1273,13 @@ d8//e0+ AO FPU FPU - - FSUB
d8//e8+ AO FPU FPU - - FSUBR
d8//f0+ AO FPU FPU - - FDIV
d8//f8+ AO FPU FPU - - FDIVR
d9//0 M FPU - - - FLD_F32 MUSTMEM
d9//2 M FPU - - - FST_F32 MUSTMEM
d9//3 M FPU - - - FSTP_F32 MUSTMEM
d9//4 M MEMZ - - - FLDENV MUSTMEM
d9//5 M GP16 - - - FLDCW MUSTMEM
d9//6 M MEMZ - - - FSTENV MUSTMEM
d9//7 M GP16 - - - FSTCW MUSTMEM
d9//0 M FPU - - - FLD_F32
d9//2 M FPU - - - FST_F32
d9//3 M FPU - - - FSTP_F32
d9//4 M MEMZ - - - FLDENV
d9//5 M GP16 - - - FLDCW
d9//6 M MEMZ - - - FSTENV
d9//7 M GP16 - - - FSTCW
d9//c8+ O FPU - - - FXCH
d9//d0 NP - - - - FNOP
d9//e0 NP - - - - FCHS
@@ -1301,25 +1309,25 @@ d9//fc NP - - - - FRNDINT
d9//fd NP - - - - FSCALE
d9//fe NP - - - - FSIN
d9//ff NP - - - - FCOS
da//0 M FPU - - - FIADD_I32 MUSTMEM
da//1 M FPU - - - FIMUL_I32 MUSTMEM
da//2 M FPU - - - FICOM_I32 MUSTMEM
da//3 M FPU - - - FICOMP_I32 MUSTMEM
da//4 M FPU - - - FISUB_I32 MUSTMEM
da//5 M FPU - - - FISUBR_I32 MUSTMEM
da//6 M FPU - - - FIDIV_I32 MUSTMEM
da//7 M FPU - - - FIDIVR_I32 MUSTMEM
da//0 M FPU - - - FIADD_I32
da//1 M FPU - - - FIMUL_I32
da//2 M FPU - - - FICOM_I32
da//3 M FPU - - - FICOMP_I32
da//4 M FPU - - - FISUB_I32
da//5 M FPU - - - FISUBR_I32
da//6 M FPU - - - FIDIV_I32
da//7 M FPU - - - FIDIVR_I32
da//c0+ O FPU - - - FCMOVB
da//c8+ O FPU - - - FCMOVE
da//d0+ O FPU - - - FCMOVBE
da//d8+ O FPU - - - FCMOVU
da//e9 NP - - - - FUCOMPP
db//0 M FPU - - - FILD_I32 MUSTMEM
db//1 M FPU - - - FISTTP_I32 MUSTMEM
db//2 M FPU - - - FIST_I32 MUSTMEM
db//3 M FPU - - - FISTP_I32 MUSTMEM
db//5 M FPU - - - FLD_F80 MUSTMEM
db//7 M FPU - - - FSTP_F80 MUSTMEM
db//0 M FPU - - - FILD_I32
db//1 M FPU - - - FISTTP_I32
db//2 M FPU - - - FIST_I32
db//3 M FPU - - - FISTP_I32
db//5 M FPU - - - FLD_F80
db//7 M FPU - - - FSTP_F80
db//c0+ O FPU - - - FCMOVNB
db//c8+ O FPU - - - FCMOVNE
db//d0+ O FPU - - - FCMOVNBE
@@ -1328,40 +1336,40 @@ db//e2 NP - - - - FCLEX
db//e3 NP - - - - FINIT
db//e8+ O FPU - - - FUCOMI
db//f0+ O FPU - - - FCOMI
dc//0 M FPU - - - FADD_F64 MUSTMEM
dc//1 M FPU - - - FMUL_F64 MUSTMEM
dc//2 M FPU - - - FCOM_F64 MUSTMEM
dc//3 M FPU - - - FCOMP_F64 MUSTMEM
dc//4 M FPU - - - FSUB_F64 MUSTMEM
dc//5 M FPU - - - FSUBR_F64 MUSTMEM
dc//6 M FPU - - - FDIV_F64 MUSTMEM
dc//7 M FPU - - - FDIVR_F64 MUSTMEM
dc//0 M FPU - - - FADD_F64
dc//1 M FPU - - - FMUL_F64
dc//2 M FPU - - - FCOM_F64
dc//3 M FPU - - - FCOMP_F64
dc//4 M FPU - - - FSUB_F64
dc//5 M FPU - - - FSUBR_F64
dc//6 M FPU - - - FDIV_F64
dc//7 M FPU - - - FDIVR_F64
dc//c0+ OA FPU FPU - - FADD
dc//c8+ OA FPU FPU - - FMUL
dc//e0+ OA FPU FPU - - FSUBR
dc//e8+ OA FPU FPU - - FSUB
dc//f0+ OA FPU FPU - - FDIVR
dc//f8+ OA FPU FPU - - FDIV
dd//0 M FPU - - - FLD_F64 MUSTMEM
dd//1 M FPU - - - FISTTP_I64 MUSTMEM
dd//2 M FPU - - - FST_F64 MUSTMEM
dd//3 M FPU - - - FSTP_F64 MUSTMEM
dd//4 M MEMZ - - - FRSTOR MUSTMEM
dd//6 M MEMZ - - - FSAVE MUSTMEM
dd//7 M GP16 - - - FSTSW MUSTMEM
dd//0 M FPU - - - FLD_F64
dd//1 M FPU - - - FISTTP_I64
dd//2 M FPU - - - FST_F64
dd//3 M FPU - - - FSTP_F64
dd//4 M MEMZ - - - FRSTOR
dd//6 M MEMZ - - - FSAVE
dd//7 M GP16 - - - FSTSW
dd//c0+ O FPU - - - FFREE
dd//d0+ O FPU - - - FST
dd//d8+ O MEMZ - - - FSTP_F80 MUSTMEM
dd//d8+ O FPU - - - FSTP
dd//e0+ O FPU - - - FUCOM
dd//e8+ O FPU - - - FUCOMP
de//0 M FPU - - - FIADD_I16 MUSTMEM
de//1 M FPU - - - FIMUL_I16 MUSTMEM
de//2 M FPU - - - FICOM_I16 MUSTMEM
de//3 M FPU - - - FICOMP_I16 MUSTMEM
de//4 M FPU - - - FISUB_I16 MUSTMEM
de//5 M FPU - - - FISUBR_I16 MUSTMEM
de//6 M FPU - - - FIDIV_I16 MUSTMEM
de//7 M FPU - - - FIDIVR_I16 MUSTMEM
de//0 M FPU - - - FIADD_I16
de//1 M FPU - - - FIMUL_I16
de//2 M FPU - - - FICOM_I16
de//3 M FPU - - - FICOMP_I16
de//4 M FPU - - - FISUB_I16
de//5 M FPU - - - FISUBR_I16
de//6 M FPU - - - FIDIV_I16
de//7 M FPU - - - FIDIVR_I16
de//c0+ OA FPU FPU - - FADDP
de//c8+ OA FPU FPU - - FMULP
de//d9 NP - - - - FCOMPP
@@ -1369,14 +1377,14 @@ de//e0+ OA FPU FPU - - FSUBRP
de//e8+ OA FPU FPU - - FSUBP
de//f0+ OA FPU FPU - - FDIVRP
de//f8+ OA FPU FPU - - FDIVP
df//0 M FPU - - - FILD_I16 MUSTMEM
df//1 M FPU - - - FISTTP_I16 MUSTMEM
df//2 M FPU - - - FIST_I16 MUSTMEM
df//3 M FPU - - - FISTP_I16 MUSTMEM
df//4 M MEMZ - - - FBLD MUSTMEM
df//5 M GP - - - FILD_I64 MUSTMEM
df//6 M MEMZ - - - FBSTP MUSTMEM
df//7 M GP - - - FISTP_I64 MUSTMEM
df//0 M FPU - - - FILD_I16
df//1 M FPU - - - FISTTP_I16
df//2 M FPU - - - FIST_I16
df//3 M FPU - - - FISTP_I16
df//4 M MEMZ - - - FBLD
df//5 M GP - - - FILD_I64
df//6 M MEMZ - - - FBSTP
df//7 M GP - - - FISTP_I64
# FSTSW AX
df//e0 O GP16 - - - FSTSW
df//f0+ AO FPU FPU - - FCOMIP
@@ -1386,13 +1394,13 @@ df//f8+ AO FPU FPU - - FUCOMIP
F3.0f01//5 M GP64 - - - RSTORSSP
F3.0f01//e8 NP - - - - SETSSBSY
F3.0f01//ea NP - - - - SAVEPREVSSP
F3.0f1e//1 M GP - - - RDSSP
F3.0f1e//c8+ O GP - - - RDSSP
F3.0f1e//fa NP - - - - ENDBR64
F3.0f1e//fb NP - - - - ENDBR32
66.0f38f5 MR GP GP - - WRUSS MUSTMEM
NP.0f38f6 MR GP GP - - WRSS MUSTMEM
F3.0fae//5 M GP - - - INCSSP INSTR_WIDTH
F3.0fae//6 M GP - - - CLRSSBSY
F3.0fae//e8+ O GP - - - INCSSP
#
# CLDEMOTE
NP.0f1c/0 M MEMZ - - - CLDEMOTE MUSTMEM
@@ -1401,16 +1409,16 @@ NP.0f1c/0 M MEMZ - - - CLDEMOTE MUSTMEM
66.0f3880 RM GP MEMZ - - INVEPT DEF64 MUSTMEM
66.0f3881 RM GP MEMZ - - INVVPID DEF64 MUSTMEM
NP.0f01//c1 NP - - - - VMCALL
66.0fc7//6 M MEMZ - - - VMCLEAR MUSTMEM
66.0fc7//6 M MEMZ - - - VMCLEAR
NP.0f01//d4 NP - - - - VMFUNC
NP.0f01//c2 NP - - - - VMLAUNCH
NP.0f01//c3 NP - - - - VMRESUME
NP.0fc7//6 M MEMZ - - - VMPTRLD MUSTMEM
NP.0fc7//7 M MEMZ - - - VMPTRST MUSTMEM
NP.0fc7//6 M MEMZ - - - VMPTRLD
NP.0fc7//7 M MEMZ - - - VMPTRST
NP.0f78 MR GP GP - - VMREAD DEF64
NP.0f79 MR GP GP - - VMWRITE DEF64
NP.0f01//c4 NP - - - - VMXOFF
F3.0fc7//6 M MEMZ - - - VMXON MUSTMEM
F3.0fc7//6 M MEMZ - - - VMXON
# WAITPKG
66.0fae//f0+ O GP32 - - - TPAUSE
@@ -1419,6 +1427,7 @@ F2.0fae//f0+ O GP32 - - - UMWAIT
# PRWRITE
F3.0fae//4 M GP - - - PTWRITE
F3.0fae//e0+ O GP - - - PTWRITE
# GFNI
66.0f38cf RM XMM XMM - - GF2P8MULB
@@ -1437,19 +1446,19 @@ RF2.0f09 NP - - - - WBNOINVD
NP.0f01//ee NP - - - - RDPKRU
NP.0f01//ef NP - - - - WRPKRU
F3.0fae//0 M GP - - - RDFSBASE ONLY64 NOMEM
F3.0fae//1 M GP - - - RDGSBASE ONLY64 NOMEM
F3.0fae//2 M GP - - - RDFSBASE ONLY64 NOMEM
F3.0fae//3 M GP - - - RDGSBASE ONLY64 NOMEM
NP.0fae//4 M MEMZ - - - XSAVE INSTR_WIDTH MUSTMEM
NP.0fae//5 M MEMZ - - - XRSTOR INSTR_WIDTH MUSTMEM
NP.0fae//6 M MEMZ - - - XSAVEOPT INSTR_WIDTH MUSTMEM
66.0fae//6 M GP8 - - - CLWB MUSTMEM
NP.0fae//7 M GP8 - - - CLFLUSH MUSTMEM
66.0fae//7 M GP8 - - - CLFLUSHOPT MUSTMEM
NP.0fc7//3 M MEMZ - - - XRSTORS INSTR_WIDTH MUSTMEM
NP.0fc7//4 M MEMZ - - - XSAVEC INSTR_WIDTH MUSTMEM
NP.0fc7//5 M MEMZ - - - XSAVES INSTR_WIDTH MUSTMEM
F3.0fae//c0+ O GP - - - RDFSBASE ONLY64
F3.0fae//c8+ O GP - - - RDGSBASE ONLY64
F3.0fae//d0+ O GP - - - WRFSBASE ONLY64
F3.0fae//d8+ O GP - - - WRGSBASE ONLY64
NP.0fae//4 M MEMZ - - - XSAVE INSTR_WIDTH
NP.0fae//5 M MEMZ - - - XRSTOR INSTR_WIDTH
NP.0fae//6 M MEMZ - - - XSAVEOPT INSTR_WIDTH
66.0fae//6 M GP8 - - - CLWB
NP.0fae//7 M GP8 - - - CLFLUSH
66.0fae//7 M GP8 - - - CLFLUSHOPT
NP.0fc7//3 M MEMZ - - - XRSTORS INSTR_WIDTH
NP.0fc7//4 M MEMZ - - - XSAVEC INSTR_WIDTH
NP.0fc7//5 M MEMZ - - - XSAVES INSTR_WIDTH
RNP.0fc7//f0+ O GP - - - RDRAND
RNP.0fc7//f8+ O GP - - - RDSEED
RF3.0fc7//f8+ O GP - - - RDPID DEF64