instrs: Remove MUSTMEM, encode in operands

This commit is contained in:
Alexis Engelke
2020-07-02 09:31:33 +02:00
parent da4ad137d8
commit 141680e77c
2 changed files with 56 additions and 54 deletions

View File

@@ -4,15 +4,15 @@
03 RM GP GP - - ADD 03 RM GP GP - - ADD
04 IA GP IMM - - ADD SIZE_8 04 IA GP IMM - - ADD SIZE_8
05 IA GP IMM - - ADD 05 IA GP IMM - - ADD
06 NP - - - - PUSH_ES ONLY32 06 NP - - - - PUSH_ES ONLY32 INSTR_WIDTH
07 NP - - - - POP_ES ONLY32 07 NP - - - - POP_ES ONLY32 INSTR_WIDTH
08 MR GP GP - - OR SIZE_8 LOCK 08 MR GP GP - - OR SIZE_8 LOCK
09 MR GP GP - - OR LOCK 09 MR GP GP - - OR LOCK
0a RM GP GP - - OR SIZE_8 0a RM GP GP - - OR SIZE_8
0b RM GP GP - - OR 0b RM GP GP - - OR
0c IA GP IMM - - OR SIZE_8 0c IA GP IMM - - OR SIZE_8
0d IA GP IMM - - OR 0d IA GP IMM - - OR
0e NP - - - - PUSH_CS ONLY32 0e NP - - - - PUSH_CS ONLY32 INSTR_WIDTH
#0f escape opcode #0f escape opcode
10 MR GP GP - - ADC SIZE_8 LOCK 10 MR GP GP - - ADC SIZE_8 LOCK
11 MR GP GP - - ADC LOCK 11 MR GP GP - - ADC LOCK
@@ -20,16 +20,16 @@
13 RM GP GP - - ADC 13 RM GP GP - - ADC
14 IA GP IMM - - ADC SIZE_8 14 IA GP IMM - - ADC SIZE_8
15 IA GP IMM - - ADC 15 IA GP IMM - - ADC
16 NP - - - - PUSH_SS ONLY32 16 NP - - - - PUSH_SS ONLY32 INSTR_WIDTH
17 NP - - - - POP_SS ONLY32 17 NP - - - - POP_SS ONLY32 INSTR_WIDTH
18 MR GP GP - - SBB SIZE_8 LOCK 18 MR GP GP - - SBB SIZE_8 LOCK
19 MR GP GP - - SBB LOCK 19 MR GP GP - - SBB LOCK
1a RM GP GP - - SBB SIZE_8 1a RM GP GP - - SBB SIZE_8
1b RM GP GP - - SBB 1b RM GP GP - - SBB
1c IA GP IMM - - SBB SIZE_8 1c IA GP IMM - - SBB SIZE_8
1d IA GP IMM - - SBB 1d IA GP IMM - - SBB
1e NP - - - - PUSH_DS ONLY32 1e NP - - - - PUSH_DS ONLY32 INSTR_WIDTH
1f NP - - - - POP_DS ONLY32 1f NP - - - - POP_DS ONLY32 INSTR_WIDTH
20 MR GP GP - - AND SIZE_8 LOCK 20 MR GP GP - - AND SIZE_8 LOCK
21 MR GP GP - - AND LOCK 21 MR GP GP - - AND LOCK
22 RM GP GP - - AND SIZE_8 22 RM GP GP - - AND SIZE_8
@@ -68,7 +68,7 @@
58+ O GP - - - POP DEF64 58+ O GP - - - POP DEF64
60 NP - - - - PUSHA ONLY32 INSTR_WIDTH 60 NP - - - - PUSHA ONLY32 INSTR_WIDTH
61 NP - - - - POPA ONLY32 INSTR_WIDTH 61 NP - - - - POPA ONLY32 INSTR_WIDTH
62 RM GP GP - - BOUND ONLY32 MUSTMEM 62 RM GP MEM - - BOUND ONLY32
63 MR GP16 GP16 - - ARPL ONLY32 63 MR GP16 GP16 - - ARPL ONLY32
63 RM GP GP32 - - MOVSX ONLY64 63 RM GP GP32 - - MOVSX ONLY64
#64 SEG=FS prefix #64 SEG=FS prefix
@@ -140,7 +140,7 @@
8a RM GP GP - - MOV SIZE_8 8a RM GP GP - - MOV SIZE_8
8b RM GP GP - - MOV 8b RM GP GP - - MOV
8c MR GP SREG - - MOV_S2G 8c MR GP SREG - - MOV_S2G
8d RM GP GP - - LEA MUSTMEM 8d RM GP MEMZ - - LEA
8e RM SREG GP - - MOV_G2S 8e RM SREG GP - - MOV_G2S
8f/0 M GP - - - POP DEF64 8f/0 M GP - - - POP DEF64
# Against frequent belief, only, XCHG (r/e)AX, (r)AX with 90 is NOP. # Against frequent belief, only, XCHG (r/e)AX, (r)AX with 90 is NOP.
@@ -196,8 +196,8 @@ c1/7 MI GP IMM8 - - SAR
# RET immediate size handled in code # RET immediate size handled in code
c2 I IMM16 - - - RET DEF64 INSTR_WIDTH c2 I IMM16 - - - RET DEF64 INSTR_WIDTH
c3 NP - - - - RET DEF64 INSTR_WIDTH c3 NP - - - - RET DEF64 INSTR_WIDTH
c4 RM GP MEMZ - - LES ONLY32 MUSTMEM c4 RM GP MEMZ - - LES ONLY32
c5 RM GP MEMZ - - LDS ONLY32 MUSTMEM c5 RM GP MEMZ - - LDS ONLY32
c6//0 MI GP IMM - - MOV SIZE_8 c6//0 MI GP IMM - - MOV SIZE_8
c6//c0+ OI GP IMM - - MOV SIZE_8 c6//c0+ OI GP IMM - - MOV SIZE_8
c6//f8 I IMM8 - - - XABORT c6//f8 I IMM8 - - - XABORT
@@ -294,9 +294,9 @@ fe/1 M GP - - - DEC SIZE_8 LOCK
ff/0 M GP - - - INC LOCK ff/0 M GP - - - INC LOCK
ff/1 M GP - - - DEC LOCK ff/1 M GP - - - DEC LOCK
ff/2 M GP - - - CALL DEF64 ff/2 M GP - - - CALL DEF64
ff/3 M MEMZ - - - CALLF MUSTMEM ff/3 M MEMZ - - - CALLF
ff/4 M GP - - - JMP DEF64 ff/4 M GP - - - JMP DEF64
ff/5 M MEMZ - - - JMPF MUSTMEM ff/5 M MEMZ - - - JMPF
ff/6 M GP - - - PUSH DEF64 ff/6 M GP - - - PUSH DEF64
0f00/0 M GP16 - - - SLDT 0f00/0 M GP16 - - - SLDT
0f00/1 M GP16 - - - STR 0f00/1 M GP16 - - - STR
@@ -438,10 +438,10 @@ NP.0f37 NP - - - - GETSEC
0faf RM GP GP - - IMUL 0faf RM GP GP - - IMUL
0fb0 MR GP GP - - CMPXCHG SIZE_8 LOCK 0fb0 MR GP GP - - CMPXCHG SIZE_8 LOCK
0fb1 MR GP GP - - CMPXCHG LOCK 0fb1 MR GP GP - - CMPXCHG LOCK
0fb2 RM GP GP - - LSS MUSTMEM 0fb2 RM GP MEM - - LSS
0fb3 MR GP GP - - BTR LOCK 0fb3 MR GP GP - - BTR LOCK
0fb4 RM GP GP - - LFS MUSTMEM 0fb4 RM GP MEM - - LFS
0fb5 RM GP GP - - LGS MUSTMEM 0fb5 RM GP MEM - - LGS
0fb6 RM GP GP8 - - MOVZX 0fb6 RM GP GP8 - - MOVZX
0fb7 RM GP GP16 - - MOVZX 0fb7 RM GP GP16 - - MOVZX
RF3.0fb8 RM GP GP - - POPCNT RF3.0fb8 RM GP GP - - POPCNT
@@ -461,14 +461,14 @@ RF3.0fbd RM GP GP - - LZCNT
0fbf RM GP GP16 - - MOVSX 0fbf RM GP GP16 - - MOVSX
0fc0 MR GP GP - - XADD SIZE_8 LOCK 0fc0 MR GP GP - - XADD SIZE_8 LOCK
0fc1 MR GP GP - - XADD LOCK 0fc1 MR GP GP - - XADD LOCK
NP.0fc3 MR GP GP - - MOVNTI MUSTMEM NP.0fc3 MR MEM GP - - MOVNTI
0fc7//1 M MEMZ - - - CMPXCHGD LOCK 0fc7//1 M MEMZ - - - CMPXCHGD LOCK
0fc8+ O GP - - - BSWAP 0fc8+ O GP - - - BSWAP
0fff RM GP GP - - UD0 0fff RM GP GP - - UD0
# #
RNP.0f38f0 RM GP GP - - MOVBE MUSTMEM RNP.0f38f0 RM GP MEM - - MOVBE
RF2.0f38f0 RM GP32 GP - - CRC32 SIZE_8 RF2.0f38f0 RM GP32 GP - - CRC32 SIZE_8
RNP.0f38f1 MR GP GP - - MOVBE MUSTMEM RNP.0f38f1 MR MEM GP - - MOVBE
RF2.0f38f1 RM GP32 GP - - CRC32 RF2.0f38f1 RM GP32 GP - - CRC32
# #
# MMX # MMX
@@ -516,7 +516,7 @@ NP.0fd3 RM MMX MMX - - MMX_PSRLQ
NP.0fd4 RM MMX MMX - - MMX_PADDQ NP.0fd4 RM MMX MMX - - MMX_PADDQ
NP.0fd5 RM MMX MMX - - MMX_PMULLW NP.0fd5 RM MMX MMX - - MMX_PMULLW
F2.0fd6 RM MMX XMM64 - - MMX_MOVDQ2Q NOMEM F2.0fd6 RM MMX XMM64 - - MMX_MOVDQ2Q NOMEM
F3.0fd6 RM XMM MMX - - MMX_MOVQ2DQ F3.0fd6 RM XMM MMX - - MMX_MOVQ2DQ NOMEM
NP.0fd7 RM GP MMX - - MMX_PMOVMSKB DEF64 NOMEM NP.0fd7 RM GP MMX - - MMX_PMOVMSKB DEF64 NOMEM
NP.0fd8 RM MMX MMX - - MMX_PSUBUSB NP.0fd8 RM MMX MMX - - MMX_PSUBUSB
NP.0fd9 RM MMX MMX - - MMX_PSUBUSW NP.0fd9 RM MMX MMX - - MMX_PSUBUSW
@@ -532,7 +532,7 @@ NP.0fe2 RM MMX MMX - - MMX_PSRAD
NP.0fe3 RM MMX MMX - - MMX_PAVGW NP.0fe3 RM MMX MMX - - MMX_PAVGW
NP.0fe4 RM MMX MMX - - MMX_PMULHUW NP.0fe4 RM MMX MMX - - MMX_PMULHUW
NP.0fe5 RM MMX MMX - - MMX_PMULHW NP.0fe5 RM MMX MMX - - MMX_PMULHW
NP.0fe7 MR MMX MMX - - MMX_MOVNTDQ MUSTMEM NP.0fe7 MR MEM64 MMX - - MMX_MOVNTQ
NP.0fe8 RM MMX MMX - - MMX_PSUBSB NP.0fe8 RM MMX MMX - - MMX_PSUBSB
NP.0fe9 RM MMX MMX - - MMX_PSUBSW NP.0fe9 RM MMX MMX - - MMX_PSUBSW
NP.0feb RM MMX MMX - - MMX_POR NP.0feb RM MMX MMX - - MMX_POR
@@ -547,7 +547,7 @@ NP.0ff3 RM MMX MMX - - MMX_PSLLQ
NP.0ff4 RM MMX MMX - - MMX_PMULUDQ NP.0ff4 RM MMX MMX - - MMX_PMULUDQ
NP.0ff5 RM MMX MMX - - MMX_PMADDWD NP.0ff5 RM MMX MMX - - MMX_PMADDWD
NP.0ff6 RM MMX MMX - - MMX_PSADBW NP.0ff6 RM MMX MMX - - MMX_PSADBW
NP.0ff7 RM MMX MMX - - MMX_MASKMOVQ NOMEM NP.0ff7 RM MMX MEM64 - - MMX_MASKMOVQ NOMEM
NP.0ff8 RM MMX MMX - - MMX_PSUBB NP.0ff8 RM MMX MMX - - MMX_PSUBB
NP.0ff9 RM MMX MMX - - MMX_PSUBW NP.0ff9 RM MMX MMX - - MMX_PSUBW
NP.0ffa RM MMX MMX - - MMX_PSUBD NP.0ffa RM MMX MMX - - MMX_PSUBD
@@ -587,8 +587,8 @@ NP.0f12 RM XMM XMM64 - - SSE_MOVLPS
66.0f12 RM XMM XMM64 - - SSE_MOVLPD 66.0f12 RM XMM XMM64 - - SSE_MOVLPD
F3.0f12 RM XMM XMM - - SSE_MOVSLDUP F3.0f12 RM XMM XMM - - SSE_MOVSLDUP
F2.0f12 RM XMM XMM64 - - SSE_MOVDDUP F2.0f12 RM XMM XMM64 - - SSE_MOVDDUP
NP.0f13 MR XMM64 XMM - - SSE_MOVLPS MUSTMEM NP.0f13 MR MEM64 XMM - - SSE_MOVLPS
66.0f13 MR XMM64 XMM - - SSE_MOVLPD MUSTMEM 66.0f13 MR MEM64 XMM - - SSE_MOVLPD
NP.0f14 RM XMM XMM - - SSE_UNPCKLPS NP.0f14 RM XMM XMM - - SSE_UNPCKLPS
66.0f14 RM XMM XMM - - SSE_UNPCKLPD 66.0f14 RM XMM XMM - - SSE_UNPCKLPD
NP.0f15 RM XMM XMM - - SSE_UNPCKHPS NP.0f15 RM XMM XMM - - SSE_UNPCKHPS
@@ -596,16 +596,16 @@ NP.0f15 RM XMM XMM - - SSE_UNPCKHPS
NP.0f16 RM XMM XMM64 - - SSE_MOVHPS NP.0f16 RM XMM XMM64 - - SSE_MOVHPS
66.0f16 RM XMM XMM64 - - SSE_MOVHPD 66.0f16 RM XMM XMM64 - - SSE_MOVHPD
F3.0f16 RM XMM XMM - - SSE_MOVSHDUP F3.0f16 RM XMM XMM - - SSE_MOVSHDUP
NP.0f17 MR XMM64 XMM - - SSE_MOVHPS MUSTMEM NP.0f17 MR MEM64 XMM - - SSE_MOVHPS
66.0f17 MR XMM64 XMM - - SSE_MOVHPD MUSTMEM 66.0f17 MR MEM64 XMM - - SSE_MOVHPD
NP.0f28 RM XMM XMM - - SSE_MOVAPS NP.0f28 RM XMM XMM - - SSE_MOVAPS
66.0f28 RM XMM XMM - - SSE_MOVAPD 66.0f28 RM XMM XMM - - SSE_MOVAPD
NP.0f29 MR XMM XMM - - SSE_MOVAPS NP.0f29 MR XMM XMM - - SSE_MOVAPS
66.0f29 MR XMM XMM - - SSE_MOVAPD 66.0f29 MR XMM XMM - - SSE_MOVAPD
F3.0f2a RM XMM32 GP - - SSE_CVTSI2SS F3.0f2a RM XMM32 GP - - SSE_CVTSI2SS
F2.0f2a RM XMM64 GP - - SSE_CVTSI2SD F2.0f2a RM XMM64 GP - - SSE_CVTSI2SD
NP.0f2b MR XMM XMM - - SSE_MOVNTPS MUSTMEM NP.0f2b MR MEMV XMM - - SSE_MOVNTPS
66.0f2b MR XMM XMM - - SSE_MOVNTPD MUSTMEM 66.0f2b MR MEMV XMM - - SSE_MOVNTPD
F3.0f2c RM GP XMM32 - - SSE_CVTTSS2SI F3.0f2c RM GP XMM32 - - SSE_CVTTSS2SI
F2.0f2c RM GP XMM64 - - SSE_CVTTSD2SI F2.0f2c RM GP XMM64 - - SSE_CVTTSD2SI
F3.0f2d RM GP XMM32 - - SSE_CVTSS2SI F3.0f2d RM GP XMM32 - - SSE_CVTSS2SI
@@ -748,7 +748,7 @@ F2.0fd0 RM XMM XMM - - SSE_ADDSUBPS
66.0fe6 RM XMM XMM - - SSE_CVTTPD2DQ 66.0fe6 RM XMM XMM - - SSE_CVTTPD2DQ
F3.0fe6 RM XMM XMM64 - - SSE_CVTDQ2PD F3.0fe6 RM XMM XMM64 - - SSE_CVTDQ2PD
F2.0fe6 RM XMM XMM - - SSE_CVTPD2DQ F2.0fe6 RM XMM XMM - - SSE_CVTPD2DQ
66.0fe7 MR XMM XMM - - SSE_MOVNTDQ MUSTMEM 66.0fe7 MR MEMV XMM - - SSE_MOVNTDQ
66.0fe8 RM XMM XMM - - SSE_PSUBSB 66.0fe8 RM XMM XMM - - SSE_PSUBSB
66.0fe9 RM XMM XMM - - SSE_PSUBSW 66.0fe9 RM XMM XMM - - SSE_PSUBSW
66.0feb RM XMM XMM - - SSE_POR 66.0feb RM XMM XMM - - SSE_POR
@@ -757,7 +757,7 @@ F2.0fe6 RM XMM XMM - - SSE_CVTPD2DQ
66.0fee RM XMM XMM - - SSE_PMAXSW 66.0fee RM XMM XMM - - SSE_PMAXSW
66.0fed RM XMM XMM - - SSE_PADDSW 66.0fed RM XMM XMM - - SSE_PADDSW
66.0fef RM XMM XMM - - SSE_PXOR 66.0fef RM XMM XMM - - SSE_PXOR
F2.0ff0 RM XMM XMM - - SSE_LDDQU MUSTMEM F2.0ff0 RM XMM MEMV - - SSE_LDDQU
66.0ff1 RM XMM XMM - - SSE_PSLLW 66.0ff1 RM XMM XMM - - SSE_PSLLW
66.0ff2 RM XMM XMM - - SSE_PSLLD 66.0ff2 RM XMM XMM - - SSE_PSLLD
66.0ff3 RM XMM XMM - - SSE_PSLLQ 66.0ff3 RM XMM XMM - - SSE_PSLLQ
@@ -800,7 +800,7 @@ F2.0ff0 RM XMM XMM - - SSE_LDDQU MUSTMEM
66.0f3825 RM XMM XMM - - SSE_PMOVSXDQ 66.0f3825 RM XMM XMM - - SSE_PMOVSXDQ
66.0f3828 RM XMM XMM - - SSE_PMULDQ 66.0f3828 RM XMM XMM - - SSE_PMULDQ
66.0f3829 RM XMM XMM - - SSE_PCMPEQQ 66.0f3829 RM XMM XMM - - SSE_PCMPEQQ
66.0f382a RM XMM XMM - - SSE_MOVNTDQA MUSTMEM 66.0f382a RM XMM MEMV - - SSE_MOVNTDQA
66.0f382b RM XMM XMM - - SSE_PACKUSDW 66.0f382b RM XMM XMM - - SSE_PACKUSDW
66.0f3830 RM XMM XMM - - SSE_PMOVZXBW 66.0f3830 RM XMM XMM - - SSE_PMOVZXBW
66.0f3831 RM XMM XMM - - SSE_PMOVZXBD 66.0f3831 RM XMM XMM - - SSE_PMOVZXBD
@@ -819,8 +819,8 @@ F2.0ff0 RM XMM XMM - - SSE_LDDQU MUSTMEM
66.0f383f RM XMM XMM - - SSE_PMAXUD 66.0f383f RM XMM XMM - - SSE_PMAXUD
66.0f3840 RM XMM XMM - - SSE_PMULLD 66.0f3840 RM XMM XMM - - SSE_PMULLD
66.0f3841 RM XMM XMM - - SSE_PHMINPOSUW 66.0f3841 RM XMM XMM - - SSE_PHMINPOSUW
66.0f38f8 RM GP MEMZ - - MOVDIR64B MUSTMEM 66.0f38f8 RM GP MEMZ - - MOVDIR64B
NP.0f38f9 MR GP GP - - MOVDIRI MUSTMEM NP.0f38f9 MR MEM GP - - MOVDIRI
# #
66.0f3a08 RMI XMM XMM IMM8 - SSE_ROUNDPS 66.0f3a08 RMI XMM XMM IMM8 - SSE_ROUNDPS
66.0f3a09 RMI XMM XMM IMM8 - SSE_ROUNDPD 66.0f3a09 RMI XMM XMM IMM8 - SSE_ROUNDPD
@@ -877,8 +877,8 @@ VEX.66.L0.0f12 RVM XMM XMM XMM64 - VMOVLPD
VEX.F2.L0.0f12 RM XMM XMM64 - - VMOVDDUP VEX.F2.L0.0f12 RM XMM XMM64 - - VMOVDDUP
VEX.F2.L1.0f12 RM XMM XMM - - VMOVDDUP VEX.F2.L1.0f12 RM XMM XMM - - VMOVDDUP
VEX.F3.0f12 RM XMM XMM - - VMOVSLDUP VEX.F3.0f12 RM XMM XMM - - VMOVSLDUP
VEX.NP.L0.0f13 MR XMM64 XMM - - VMOVLPS MUSTMEM VEX.NP.L0.0f13 MR MEM64 XMM - - VMOVLPS
VEX.66.L0.0f13 MR XMM64 XMM - - VMOVLPD MUSTMEM VEX.66.L0.0f13 MR MEM64 XMM - - VMOVLPD
VEX.NP.0f14 RVM XMM XMM XMM - VUNPCKLPS VEX.NP.0f14 RVM XMM XMM XMM - VUNPCKLPS
VEX.66.0f14 RVM XMM XMM XMM - VUNPCKLPD VEX.66.0f14 RVM XMM XMM XMM - VUNPCKLPD
VEX.NP.0f15 RVM XMM XMM XMM - VUNPCKHPS VEX.NP.0f15 RVM XMM XMM XMM - VUNPCKHPS
@@ -886,16 +886,16 @@ VEX.66.0f15 RVM XMM XMM XMM - VUNPCKHPD
VEX.NP.L0.0f16 RVM XMM XMM64 XMM64 - VMOVHPS VEX.NP.L0.0f16 RVM XMM XMM64 XMM64 - VMOVHPS
VEX.66.L0.0f16 RVM XMM XMM64 XMM64 - VMOVHPD VEX.66.L0.0f16 RVM XMM XMM64 XMM64 - VMOVHPD
VEX.F3.0f16 RM XMM XMM - - VMOVSHDUP VEX.F3.0f16 RM XMM XMM - - VMOVSHDUP
VEX.NP.L0.0f17 MR XMM64 XMM - - VMOVHPS MUSTMEM VEX.NP.L0.0f17 MR MEM64 XMM - - VMOVHPS
VEX.66.L0.0f17 MR XMM64 XMM - - VMOVHPD MUSTMEM VEX.66.L0.0f17 MR MEM64 XMM - - VMOVHPD
VEX.NP.0f28 RM XMM XMM - - VMOVAPS VEX.NP.0f28 RM XMM XMM - - VMOVAPS
VEX.66.0f28 RM XMM XMM - - VMOVAPD VEX.66.0f28 RM XMM XMM - - VMOVAPD
VEX.NP.0f29 MR XMM XMM - - VMOVAPS VEX.NP.0f29 MR XMM XMM - - VMOVAPS
VEX.66.0f29 MR XMM XMM - - VMOVAPD VEX.66.0f29 MR XMM XMM - - VMOVAPD
VEX.F3.0f2a RVM XMM XMM GP - VCVTSI2SS VEXLIG VEX.F3.0f2a RVM XMM XMM GP - VCVTSI2SS VEXLIG
VEX.F2.0f2a RVM XMM XMM GP - VCVTSI2SD VEXLIG VEX.F2.0f2a RVM XMM XMM GP - VCVTSI2SD VEXLIG
VEX.NP.0f2b MR XMM XMM - - VMOVNTPS VEX.NP.0f2b MR MEMV XMM - - VMOVNTPS
VEX.66.0f2b MR XMM XMM - - VMOVNTPD VEX.66.0f2b MR MEMV XMM - - VMOVNTPD
VEX.F3.0f2c RM GP XMM32 - - VCVTTSS2SI VEX.F3.0f2c RM GP XMM32 - - VCVTTSS2SI
VEX.F2.0f2c RM GP XMM64 - - VCVTTSD2SI VEX.F2.0f2c RM GP XMM64 - - VCVTTSD2SI
VEX.F3.0f2d RM GP XMM32 - - VCVTSS2SI VEX.F3.0f2d RM GP XMM32 - - VCVTSS2SI
@@ -904,8 +904,8 @@ VEX.NP.0f2e RM XMM32 XMM32 - - VUCOMISS
VEX.66.0f2e RM XMM64 XMM64 - - VUCOMISD VEX.66.0f2e RM XMM64 XMM64 - - VUCOMISD
VEX.NP.0f2f RM XMM32 XMM32 - - VCOMISS VEX.NP.0f2f RM XMM32 XMM32 - - VCOMISS
VEX.66.0f2f RM XMM64 XMM64 - - VCOMISD VEX.66.0f2f RM XMM64 XMM64 - - VCOMISD
VEX.NP.0f50 RM GP XMM - - VMOVMSKPS DEF64 VEX.NP.0f50 RM GP XMM - - VMOVMSKPS DEF64 NOMEM
VEX.66.0f50 RM GP XMM - - VMOVMSKPD DEF64 VEX.66.0f50 RM GP XMM - - VMOVMSKPD DEF64 NOMEM
VEX.NP.0f51 RVM XMM XMM XMM - VSQRTPS VEX.NP.0f51 RVM XMM XMM XMM - VSQRTPS
VEX.66.0f51 RVM XMM XMM XMM - VSQRTPD VEX.66.0f51 RVM XMM XMM XMM - VSQRTPD
VEX.F3.0f51 RVM XMM XMM XMM32 - VSQRTSS VEXLIG VEX.F3.0f51 RVM XMM XMM XMM32 - VSQRTSS VEXLIG
@@ -1019,7 +1019,7 @@ VEX.66.0fd3 RVM XMM XMM XMM - VPSRLQ
VEX.66.0fd4 RVM XMM XMM XMM - VPADDQ VEX.66.0fd4 RVM XMM XMM XMM - VPADDQ
VEX.66.0fd5 RVM XMM XMM XMM - VPMULLW VEX.66.0fd5 RVM XMM XMM XMM - VPMULLW
VEX.66.L0.0fd6 MR XMM64 XMM64 - - VMOVQ VEX.66.L0.0fd6 MR XMM64 XMM64 - - VMOVQ
VEX.66.0fd7 RM GP XMM - - VPMOVMSKB DEF64 VEX.66.0fd7 RM GP XMM - - VPMOVMSKB DEF64 NOMEM
VEX.66.0fd8 RVM XMM XMM XMM - VPSUBUSB VEX.66.0fd8 RVM XMM XMM XMM - VPSUBUSB
VEX.66.0fd9 RVM XMM XMM XMM - VPSUBUSW VEX.66.0fd9 RVM XMM XMM XMM - VPSUBUSW
VEX.66.0fda RVM XMM XMM XMM - VPMINUB VEX.66.0fda RVM XMM XMM XMM - VPMINUB
@@ -1038,7 +1038,7 @@ VEX.66.0fe6 RM XMM128 XMM - - VCVTTPD2DQ
VEX.F3.L0.0fe6 RM XMM XMM64 - - VCVTDQ2PD VEX.F3.L0.0fe6 RM XMM XMM64 - - VCVTDQ2PD
VEX.F3.L1.0fe6 RM XMM XMM128 - - VCVTDQ2PD VEX.F3.L1.0fe6 RM XMM XMM128 - - VCVTDQ2PD
VEX.F2.0fe6 RM XMM128 XMM - - VCVTPD2DQ VEX.F2.0fe6 RM XMM128 XMM - - VCVTPD2DQ
VEX.66.0fe7 MR XMM XMM - - VMOVNTDQ VEX.66.0fe7 MR MEMV XMM - - VMOVNTDQ
VEX.66.0fe8 RVM XMM XMM XMM - VPSUBSB VEX.66.0fe8 RVM XMM XMM XMM - VPSUBSB
VEX.66.0fe9 RVM XMM XMM XMM - VPSUBSW VEX.66.0fe9 RVM XMM XMM XMM - VPSUBSW
VEX.66.0feb RVM XMM XMM XMM - VPOR VEX.66.0feb RVM XMM XMM XMM - VPOR
@@ -1097,7 +1097,7 @@ VEX.66.0f3824 RM XMM XMM - - VPMOVSXWQ
VEX.66.0f3825 RM XMM XMM - - VPMOVSXDQ VEX.66.0f3825 RM XMM XMM - - VPMOVSXDQ
VEX.66.0f3828 RVM XMM XMM XMM - VPMULDQ VEX.66.0f3828 RVM XMM XMM XMM - VPMULDQ
VEX.66.0f3829 RVM XMM XMM XMM - VPCMPEQQ VEX.66.0f3829 RVM XMM XMM XMM - VPCMPEQQ
VEX.66.0f382a RM XMM XMM - - VMOVNTDQA VEX.66.0f382a RM XMM MEMV - - VMOVNTDQA
VEX.66.0f382b RVM XMM XMM XMM - VPACKUSDW VEX.66.0f382b RVM XMM XMM XMM - VPACKUSDW
VEX.66.W0.0f382c RVM XMM XMM XMM - VMASKMOVPS VEX.66.W0.0f382c RVM XMM XMM XMM - VMASKMOVPS
VEX.66.W0.0f382d RVM XMM XMM XMM - VMASKMOVPD VEX.66.W0.0f382d RVM XMM XMM XMM - VMASKMOVPD
@@ -1129,7 +1129,7 @@ VEX.66.W0.0f3847 RVM XMM XMM XMM - VPSLLVD
VEX.66.W1.0f3847 RVM XMM XMM XMM - VPSLLVQ VEX.66.W1.0f3847 RVM XMM XMM XMM - VPSLLVQ
VEX.66.W0.0f3858 RM XMM XMM32 - - VPBROADCASTD VEX.66.W0.0f3858 RM XMM XMM32 - - VPBROADCASTD
VEX.66.W0.0f3859 RM XMM XMM64 - - VPBROADCASTQ VEX.66.W0.0f3859 RM XMM XMM64 - - VPBROADCASTQ
VEX.66.W0.L1.0f385a RM XMM XMM128 - - VPBROADCASTI128 VEX.66.W0.L1.0f385a RM XMM MEM128 - - VPBROADCASTI128
VEX.66.W0.0f3878 RM XMM XMM8 - - VPBROADCASTB VEX.66.W0.0f3878 RM XMM XMM8 - - VPBROADCASTB
VEX.66.W0.0f3879 RM XMM XMM16 - - VPBROADCASTW VEX.66.W0.0f3879 RM XMM XMM16 - - VPBROADCASTW
VEX.66.W0.0f388c RVM XMM XMM XMM - VPMASKMOVD VEX.66.W0.0f388c RVM XMM XMM XMM - VPMASKMOVD
@@ -1402,17 +1402,17 @@ F3.0f01//ea NP - - - - SAVEPREVSSP
F3.0f1e//c8+ O GP - - - RDSSP F3.0f1e//c8+ O GP - - - RDSSP
F3.0f1e//fa NP - - - - ENDBR64 F3.0f1e//fa NP - - - - ENDBR64
F3.0f1e//fb NP - - - - ENDBR32 F3.0f1e//fb NP - - - - ENDBR32
66.0f38f5 MR GP GP - - WRUSS MUSTMEM 66.0f38f5 MR MEM GP - - WRUSS
NP.0f38f6 MR GP GP - - WRSS MUSTMEM NP.0f38f6 MR MEM GP - - WRSS
F3.0fae//6 M GP - - - CLRSSBSY F3.0fae//6 M GP - - - CLRSSBSY
F3.0fae//e8+ O GP - - - INCSSP F3.0fae//e8+ O GP - - - INCSSP
# #
# CLDEMOTE # CLDEMOTE
NP.0f1c/0 M MEMZ - - - CLDEMOTE MUSTMEM NP.0f1c/0 M MEMZ - - - CLDEMOTE
# VMX # VMX
66.0f3880 RM GP MEMZ - - INVEPT DEF64 MUSTMEM 66.0f3880 RM GP MEMZ - - INVEPT DEF64
66.0f3881 RM GP MEMZ - - INVVPID DEF64 MUSTMEM 66.0f3881 RM GP MEMZ - - INVVPID DEF64
NP.0f01//c1 NP - - - - VMCALL NP.0f01//c1 NP - - - - VMCALL
66.0fc7//6 M MEMZ - - - VMCLEAR 66.0fc7//6 M MEMZ - - - VMCLEAR
NP.0f01//d4 NP - - - - VMFUNC NP.0f01//d4 NP - - - - VMFUNC
@@ -1467,7 +1467,7 @@ NP.0fc7//5 M MEMZ - - - XSAVES INSTR_WIDTH
RNP.0fc7//f0+ O GP - - - RDRAND RNP.0fc7//f0+ O GP - - - RDRAND
RNP.0fc7//f8+ O GP - - - RDSEED RNP.0fc7//f8+ O GP - - - RDSEED
RF3.0fc7//f8+ O GP - - - RDPID DEF64 RF3.0fc7//f8+ O GP - - - RDPID DEF64
66.0f3882 RM GP MEMZ - - INVPCID DEF64 MUSTMEM 66.0f3882 RM GP MEMZ - - INVPCID DEF64
NP.0f38c8 RM XMM XMM - - SHA1NEXTE NP.0f38c8 RM XMM XMM - - SHA1NEXTE
NP.0f38c9 RM XMM XMM - - SHA1MSG1 NP.0f38c9 RM XMM XMM - - SHA1MSG1
NP.0f38ca RM XMM XMM - - SHA1MSG2 NP.0f38ca RM XMM XMM - - SHA1MSG2
@@ -1476,11 +1476,11 @@ NP.0f38cc RM XMM XMM - - SHA256MSG1
NP.0f38cd RM XMM XMM - - SHA256MSG2 NP.0f38cd RM XMM XMM - - SHA256MSG2
NP.0f3acc RMI XMM XMM IMM8 - SHA1RNDS4 NP.0f3acc RMI XMM XMM IMM8 - SHA1RNDS4
NP.0f1a RM BND MEMZ - - BNDLDX MUSTMEM NP.0f1a RM BND MEMZ - - BNDLDX
66.0f1a RM BND BND - - BNDMOV DEF64 66.0f1a RM BND BND - - BNDMOV DEF64
F2.0f1a RM BND GP - - BNDCU DEF64 F2.0f1a RM BND GP - - BNDCU DEF64
F3.0f1a RM BND GP - - BNDCL DEF64 F3.0f1a RM BND GP - - BNDCL DEF64
NP.0f1b MR MEMZ BND - - BNDSTX MUSTMEM NP.0f1b MR MEMZ BND - - BNDSTX
66.0f1b MR BND BND - - BNDMOV DEF64 66.0f1b MR BND BND - - BNDMOV DEF64
F2.0f1b RM BND GP - - BNDCN DEF64 F2.0f1b RM BND GP - - BNDCN DEF64
F3.0f1b RM BND MEMZ - - BNDMK F3.0f1b RM BND MEMZ - - BNDMK

View File

@@ -112,11 +112,14 @@ OPKINDS = {
"XMM256": OpKind(32, "XMM"), "XMM256": OpKind(32, "XMM"),
"SREG": OpKind(0, "SEG"), "SREG": OpKind(0, "SEG"),
"FPU": OpKind(10, "FPU"), "FPU": OpKind(10, "FPU"),
"MEM": OpKind(OpKind.SZ_OP, OpKind.K_MEM),
"MEMV": OpKind(OpKind.SZ_VEC, OpKind.K_MEM),
"MEMZ": OpKind(0, OpKind.K_MEM), "MEMZ": OpKind(0, OpKind.K_MEM),
"MEM8": OpKind(1, OpKind.K_MEM), "MEM8": OpKind(1, OpKind.K_MEM),
"MEM16": OpKind(2, OpKind.K_MEM), "MEM16": OpKind(2, OpKind.K_MEM),
"MEM32": OpKind(4, OpKind.K_MEM), "MEM32": OpKind(4, OpKind.K_MEM),
"MEM64": OpKind(8, OpKind.K_MEM), "MEM64": OpKind(8, OpKind.K_MEM),
"MEM128": OpKind(16, OpKind.K_MEM),
"MASK8": OpKind(1, "MASK"), "MASK8": OpKind(1, "MASK"),
"MASK16": OpKind(2, "MASK"), "MASK16": OpKind(2, "MASK"),
"MASK32": OpKind(4, "MASK"), "MASK32": OpKind(4, "MASK"),
@@ -172,7 +175,6 @@ class InstrDesc(NamedTuple):
if "INSTR_WIDTH" in self.flags: flags.instr_width = 1 if "INSTR_WIDTH" in self.flags: flags.instr_width = 1
if "LOCK" in self.flags: flags.lock = 1 if "LOCK" in self.flags: flags.lock = 1
if "VSIB" in self.flags: flags.vsib = 1 if "VSIB" in self.flags: flags.vsib = 1
if "MUSTMEM" in self.flags: setattr(flags, "op%d_regty"%(flags.modrm_idx^3), 0xf)
if flags.imm_control >= 4: if flags.imm_control >= 4:
imm_op = next(op for op in self.operands if op.kind == OpKind.K_IMM) imm_op = next(op for op in self.operands if op.kind == OpKind.K_IMM)