diff options
Diffstat (limited to 'Source/JavaScriptCore/disassembler/udis86/optable.xml')
-rw-r--r-- | Source/JavaScriptCore/disassembler/udis86/optable.xml | 3344 |
1 files changed, 2242 insertions, 1102 deletions
diff --git a/Source/JavaScriptCore/disassembler/udis86/optable.xml b/Source/JavaScriptCore/disassembler/udis86/optable.xml index 14b4ac593..3bda8587e 100644 --- a/Source/JavaScriptCore/disassembler/udis86/optable.xml +++ b/Source/JavaScriptCore/disassembler/udis86/optable.xml @@ -2,37 +2,132 @@ <?xml-stylesheet href="optable.xsl" type="text/xsl"?> <x86optable> + <!-- + The most important elements of each instruction definition are the + pfx (prefix), opc (opcode), and opr (operand) elements. Each is a + CDATA element consisting of blank-separated words. Upper and lower + case are equivalent. + + <pfx></pfx> + + pfx describes the set of valid prefixes that can precede the main + opcode without turning it into a different instruction. These may + be: + + aso accepts address size override + oso accepts operand size override + seg accepts a segment override + rexw, rexr, rexx, rexb + uses the indicated REX bit + vexl accepts the vex.L prefix bit, in other words, the vexl + bit can be used in the decoding of the avx instruction. + + <opr></opr> + + [T][s] + + Size Suffix + =========== + + x - If vex.L = 1 => m256/YMM + vex.L = 0 => m128/XMM + + opc words may be actual byte values (two hex digits), or may be one of + the following: + /sse=66,f3,f2 - required prefix (always first, and always + followed by 0f) + /3dnow=00-ff - this is a 3DNow opcode (only in a definition of the + form 0f 0f 3dnow=<byte>) + /a=16,32,64 - has this address size + /m=16,32,64,!64 - applicable only when the CPU is in this mode + /o=16,32,64 - has this operand size + /mod=11,!11 - has ModR/M with 11 or not-11 in the Mod field + /reg=0-7 - has ModR/M with this value in the reg field + /rm=0-7 - has ModR/M with this value in the R/M field (only with + /mod=11) + /x87=00-3f - X87 opcode with this value in the low 6 bits of the + following "ModR/M" byte (only with /mod=11 and no other modifiers) + + opr words follow the Intel documentation somewhat, and specify the + location and the size of the operand. The OperandDict table in + ud_itab.py maps these words to named OP_ and SZ_ constants for the + location and size respectively. These constants are defined in + decode.h, q.v. for details. + + The mode element affects instruction semantics but not decoding: + inv64 - invalid in 64-bit mode + def64 - default operand size is 64 bits in 64-bit mode + + cpuid + + The cpuid element maybe applied to an instruction or a specific + definition of the instruction. One ore more strings define the + cpuid features that the instruction (or a definition belongs to) + + Values are: sse, sse2, sse3, sse4, sse4.1, sse4.2, avx + + AVX Instructions + + AVX instructions can be described in two ways. One, the explicit + form, and the other that promotes an existing sse instruction + definition to its avx form. + + If an instruction is defined to be in cpuid=avx, but is defined in + the legacy form (using /sse= extensions), then the opcode generator + will infer that as two definitions, one the see instruction and the + other, an inferred avx instruction. + + In generating the sse definition from the above, the following + transformations happen, + + - /vexw and /vexl extensions (if any) are removed + - The operands H and L are removed. Operands specified on + the right to removed operands are shifted to the left + position. + - The vexl prefix is removed. + - "avx" is removed form the cpuid definition. + + In generating the avx definition from the above, the following + transformations happen, + + - c4 is inserted in the 0th position of the opcode string + - /sse extension is removed + - A new /vex extension is constructed using /sse, 0f, 38 and + 3a opcodes (if any). + - Operands V, W, H, and U are marked explicitly to have the + size suffix "x" + + If the above transformations do not generate the required + definitions, the instructions will need to be defined separately. + --> + <instruction> <mnemonic>aaa</mnemonic> <def> - <opc>37</opc> - <mode>inv64</mode> + <opc>37 /m=!64</opc> </def> </instruction> <instruction> <mnemonic>aad</mnemonic> <def> - <opc>d5</opc> + <opc>d5 /m=!64</opc> <opr>Ib</opr> - <mode>inv64</mode> </def> </instruction> <instruction> <mnemonic>aam</mnemonic> <def> - <opc>d4</opc> + <opc>d4 /m=!64</opc> <opr>Ib</opr> - <mode>inv64</mode> </def> </instruction> <instruction> <mnemonic>aas</mnemonic> <def> - <opc>3f</opc> - <mode>inv64</mode> + <opc>3f /m=!64</opc> </def> </instruction> @@ -65,8 +160,7 @@ <def> <pfx>oso rexw</pfx> <opc>15</opc> - <opr>rAX Iz</opr> - <syn>sext</syn> + <opr>rAX sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -75,21 +169,19 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>82 /reg=2</opc> + <opc>82 /reg=2 /m=!64</opc> <opr>Eb Ib</opr> <mode>inv64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>81 /reg=2</opc> - <opr>Ev Iz</opr> - <syn>sext</syn> + <opr>Ev sIz</opr> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>83 /reg=2</opc> - <opr>Ev Ib</opr> - <syn>sext</syn> + <opr>Ev sIb</opr> </def> </instruction> @@ -122,8 +214,7 @@ <def> <pfx>oso rexw</pfx> <opc>05</opc> - <opr>rAX Iz</opr> - <syn>sext</syn> + <opr>rAX sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -132,43 +223,39 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>82 /reg=0</opc> + <opc>82 /reg=0 /m=!64</opc> <opr>Eb Ib</opr> <mode>inv64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>81 /reg=0</opc> - <opr>Ev Iz</opr> - <syn>sext</syn> + <opr>Ev sIz</opr> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>83 /reg=0</opc> - <opr>Ev Ib</opr> - <syn>sext</syn> + <opr>Ev sIb</opr> </def> </instruction> - <!-- - SSE2 - --> - <instruction> <mnemonic>addpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 58</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 58</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>addps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 58</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -176,8 +263,9 @@ <mnemonic>addsd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 58</opc> - <opr>V W</opr> + <opc>/sse=f2 0f 58</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -185,12 +273,94 @@ <mnemonic>addss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 58</opc> + <opc>/sse=f3 0f 58</opc> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>addsubpd</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f d0</opc> + <opr>V H W</opr> + <cpuid>sse3 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>addsubps</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=f2 0f d0</opc> + <opr>V H W</opr> + <cpuid>sse3 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>aesdec</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f 38 de</opc> + <opr>V H W</opr> + <cpuid>aesni avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>aesdeclast</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f 38 df</opc> <opr>V W</opr> + <cpuid>aesni avx</cpuid> </def> </instruction> - <instruction> + <instruction> + <mnemonic>aesenc</mnemonic> + <cpuid>aesni</cpuid> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f 38 dc</opc> + <opr>V W</opr> + <cpuid>aesni avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>aesenclast</mnemonic> + <cpuid>aesni avx</cpuid> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f 38 dd</opc> + <opr>V H W</opr> + </def> + </instruction> + + <instruction> + <mnemonic>aesimc</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f 38 db</opc> + <opr>V W</opr> + <cpuid>aesni avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>aeskeygenassist</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f 3a df</opc> + <opr>V W Ib</opr> + <cpuid>aesni avx</cpuid> + </def> + </instruction> + + <instruction> <mnemonic>and</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> @@ -219,8 +389,7 @@ <def> <pfx>oso rexw</pfx> <opc>25</opc> - <opr>rAX Iz</opr> - <syn>sext</syn> + <opr>rAX sIz</opr> </def> <def> <pfx>aso rexw rexr rexx rexb</pfx> @@ -229,30 +398,29 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>82 /reg=4</opc> + <opc>82 /reg=4 /m=!64</opc> <opr>Eb Ib</opr> <mode>inv64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>81 /reg=4</opc> - <opr>Ev Iz</opr> - <syn>sext</syn> + <opr>Ev sIz</opr> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>83 /reg=4</opc> - <opr>Ev Ib</opr> - <syn>sext</syn> + <opr>Ev sIb</opr> </def> </instruction> <instruction> <mnemonic>andpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 54</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 54</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -261,7 +429,8 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 54</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -269,8 +438,9 @@ <mnemonic>andnpd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 55</opc> - <opr>V W</opr> + <opc>/sse=66 0f 55</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -279,7 +449,8 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 55</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -287,15 +458,8 @@ <mnemonic>arpl</mnemonic> <def> <pfx>aso</pfx> - <opc>63 /m=16</opc> - <opr>Ew Gw</opr> - <mode>inv64</mode> - </def> - <def> - <pfx>aso</pfx> - <opc>63 /m=32</opc> + <opc>63 /m=!64</opc> <opr>Ew Gw</opr> - <mode>inv64</mode> </def> </instruction> @@ -304,150 +468,27 @@ <def> <pfx>aso oso rexw rexx rexr rexb</pfx> <opc>63 /m=64</opc> - <opr>Gv Ed</opr> - </def> - </instruction> - - <instruction> - <mnemonic>bound</mnemonic> - <def> - <pfx>aso oso</pfx> - <opc>62</opc> - <opr>Gv M</opr> - <mode>inv64</mode> - </def> - </instruction> - - <instruction> - <mnemonic>bsf</mnemonic> - <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>0f bc</opc> - <opr>Gv Ev</opr> - </def> - </instruction> - - <instruction> - <mnemonic>bsr</mnemonic> - <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>0f bd</opc> - <opr>Gv Ev</opr> - </def> - </instruction> - - <instruction> - <mnemonic>bswap</mnemonic> - <def> - <pfx>oso rexw rexb</pfx> - <opc>0f c8</opc> - <opr>rAXr8</opr> - </def> - <def> - <pfx>oso rexw rexb</pfx> - <opc>0f c9</opc> - <opr>rCXr9</opr> - </def> - <def> - <pfx>oso rexw rexb</pfx> - <opc>0f ca</opc> - <opr>rDXr10</opr> - </def> - <def> - <pfx>oso rexw rexb</pfx> - <opc>0f cb</opc> - <opr>rBXr11</opr> - </def> - <def> - <pfx>oso rexw rexb</pfx> - <opc>0f cc</opc> - <opr>rSPr12</opr> - </def> - <def> - <pfx>oso rexw rexb</pfx> - <opc>0f cd</opc> - <opr>rBPr13</opr> - </def> - <def> - <pfx>oso rexw rexb</pfx> - <opc>0f ce</opc> - <opr>rSIr14</opr> - </def> - <def> - <pfx>oso rexw rexb</pfx> - <opc>0f cf</opc> - <opr>rDIr15</opr> - </def> - </instruction> - - <instruction> - <mnemonic>bt</mnemonic> - <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>0f ba /reg=4</opc> - <opr>Ev Ib</opr> - </def> - <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>0f a3</opc> - <opr>Ev Gv</opr> - </def> - </instruction> - - <instruction> - <mnemonic>btc</mnemonic> - <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>0f bb</opc> - <opr>Ev Gv</opr> - </def> - <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>0f ba /reg=7</opc> - <opr>Ev Ib</opr> - </def> - </instruction> - - <instruction> - <mnemonic>btr</mnemonic> - <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>0f b3</opc> - <opr>Ev Gv</opr> - </def> - <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>0f ba /reg=6</opc> - <opr>Ev Ib</opr> + <opr>Gq Ed</opr> </def> </instruction> <instruction> - <mnemonic>bts</mnemonic> - <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>0f ab</opc> - <opr>Ev Gv</opr> - </def> + <mnemonic>call</mnemonic> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>0f ba /reg=5</opc> - <opr>Ev Ib</opr> + <opc>ff /reg=2 /m=!64</opc> + <opr>Ev</opr> </def> - </instruction> - - <instruction> - <mnemonic>call</mnemonic> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> - <opc>ff /reg=2</opc> - <opr>Ev</opr> + <opc>ff /reg=2 /m=64</opc> + <opr>Eq</opr> <mode>def64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>ff /reg=3</opc> - <opr>Ep</opr> + <opr>Fv</opr> </def> <def> <pfx>oso</pfx> @@ -457,9 +498,8 @@ </def> <def> <pfx>oso</pfx> - <opc>9a</opc> - <opr>Ap</opr> - <mode>inv64</mode> + <opc>9a /m=!64</opc> + <opr>Av</opr> </def> </instruction> @@ -712,7 +752,7 @@ <def> <pfx>oso rexw</pfx> <opc>3d</opc> - <opr>rAX Iz</opr> + <opr>rAX sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -721,43 +761,46 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>82 /reg=7</opc> + <opc>82 /reg=7 /m=!64</opc> <opr>Eb Ib</opr> <mode>inv64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>81 /reg=7</opc> - <opr>Ev Iz</opr> + <opr>Ev sIz</opr> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>83 /reg=7</opc> - <opr>Ev Ib</opr> + <opr>Ev sIb</opr> </def> </instruction> <instruction> <mnemonic>cmppd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f c2</opc> - <opr>V W Ib</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f c2</opc> + <opr>V H W Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>cmpps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f c2</opc> - <opr>V W Ib</opr> + <opr>V H W Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>cmpsb</mnemonic> <def> + <pfx>repz seg</pfx> <opc>a6</opc> </def> </instruction> @@ -765,7 +808,7 @@ <instruction> <mnemonic>cmpsw</mnemonic> <def> - <pfx>oso rexw</pfx> + <pfx>repz oso rexw seg</pfx> <opc>a7 /o=16</opc> </def> </instruction> @@ -773,20 +816,21 @@ <instruction> <mnemonic>cmpsd</mnemonic> <def> - <pfx>oso rexw</pfx> + <pfx>repz oso rexw seg</pfx> <opc>a7 /o=32</opc> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f c2</opc> - <opr>V W Ib</opr> + <opc>/sse=f2 0f c2</opc> + <opr>V H W Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>cmpsq</mnemonic> <def> - <pfx>oso rexw</pfx> + <pfx>repz oso rexw seg</pfx> <opc>a7 /o=64</opc> </def> </instruction> @@ -795,8 +839,9 @@ <mnemonic>cmpss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f c2</opc> - <opr>V W Ib</opr> + <opc>/sse=f3 0f c2</opc> + <opr>V H W Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -818,7 +863,21 @@ <mnemonic>cmpxchg8b</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>0f c7 /reg=1</opc> + <opc>0f c7 /mod=!11 /reg=1 /o=16</opc> + <opr>M</opr> + </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>0f c7 /mod=!11 /reg=1 /o=32</opc> + <opr>M</opr> + </def> + </instruction> + + <instruction> + <mnemonic>cmpxchg16b</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>0f c7 /mod=!11 /reg=1 /o=64</opc> <opr>M</opr> </def> </instruction> @@ -827,8 +886,9 @@ <mnemonic>comisd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 2f</opc> - <opr>V W</opr> + <opc>/sse=66 0f 2f</opc> + <opr>Vsd Wsd</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -838,6 +898,7 @@ <pfx>aso rexr rexx rexb</pfx> <opc>0f 2f</opc> <opr>V W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -851,9 +912,10 @@ <instruction> <mnemonic>cvtdq2pd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f e6</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f3 0f e6</opc> + <opr>V Wdq</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -863,15 +925,17 @@ <pfx>aso rexr rexx rexb</pfx> <opc>0f 5b</opc> <opr>V W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>cvtpd2dq</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f e6</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f2 0f e6</opc> + <opr>Vdq W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -879,7 +943,7 @@ <mnemonic>cvtpd2pi</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 2d</opc> + <opc>/sse=66 0f 2d</opc> <opr>P W</opr> </def> </instruction> @@ -887,9 +951,10 @@ <instruction> <mnemonic>cvtpd2ps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 5a</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 5a</opc> + <opr>Vdq W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -906,7 +971,7 @@ <mnemonic>cvtpi2pd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 2a</opc> + <opc>/sse=66 0f 2a</opc> <opr>V Q</opr> </def> </instruction> @@ -914,27 +979,29 @@ <instruction> <mnemonic>cvtps2dq</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 5b</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 5b</opc> <opr>V W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>cvtps2pi</mnemonic> + <mnemonic>cvtps2pd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>0f 2d</opc> - <opr>P W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>0f 5a</opc> + <opr>V Wdq</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>cvtps2pd</mnemonic> + <mnemonic>cvtps2pi</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>0f 5a</opc> - <opr>V W</opr> + <opc>0f 2d</opc> + <opr>P MqU</opr> </def> </instruction> @@ -942,8 +1009,9 @@ <mnemonic>cvtsd2si</mnemonic> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>ssef2 0f 2d</opc> - <opr>Gy W</opr> + <opc>/sse=f2 0f 2d</opc> + <opr>Gy MqU</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -951,26 +1019,29 @@ <mnemonic>cvtsd2ss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 5a</opc> - <opr>V W</opr> + <opc>/sse=f2 0f 5a</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>cvtsi2ss</mnemonic> + <mnemonic>cvtsi2sd</mnemonic> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>ssef3 0f 2a</opc> - <opr>V Ex</opr> + <opc>/sse=f2 0f 2a</opc> + <opr>V H Ey</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>cvtss2si</mnemonic> + <mnemonic>cvtsi2ss</mnemonic> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>ssef3 0f 2d</opc> - <opr>Gy W</opr> + <opc>/sse=f3 0f 2a</opc> + <opr>V H Ey</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -978,35 +1049,48 @@ <mnemonic>cvtss2sd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 5a</opc> - <opr>V W</opr> + <opc>/sse=f3 0f 5a</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>cvttpd2pi</mnemonic> + <mnemonic>cvtss2si</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 2c</opc> - <opr>P W</opr> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=f3 0f 2d</opc> + <opr>Gy MdU</opr> + <cpuid>sse avx</cpuid> </def> </instruction> <instruction> <mnemonic>cvttpd2dq</mnemonic> <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f e6</opc> + <opr>Vdq W</opr> + <cpuid>sse2 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>cvttpd2pi</mnemonic> + <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f e6</opc> - <opr>V W</opr> + <opc>/sse=66 0f 2c</opc> + <opr>P W</opr> </def> </instruction> <instruction> <mnemonic>cvttps2dq</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 5b</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f3 0f 5b</opc> <opr>V W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -1023,17 +1107,9 @@ <mnemonic>cvttsd2si</mnemonic> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>ssef2 0f 2c</opc> - <opr>Gy Wsd</opr> - </def> - </instruction> - - <instruction> - <mnemonic>cvtsi2sd</mnemonic> - <def> - <pfx>aso rexw rexr rexx rexb</pfx> - <opc>ssef2 0f 2a</opc> - <opr>V Ex</opr> + <opc>/sse=f2 0f 2c</opc> + <opr>Gy MqU</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -1041,8 +1117,9 @@ <mnemonic>cvttss2si</mnemonic> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>ssef3 0f 2c</opc> - <opr>Gy Wsd</opr> + <opc>/sse=f3 0f 2c</opc> + <opr>Gy MdU</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -1073,7 +1150,7 @@ <instruction> <mnemonic>daa</mnemonic> <def> - <opc>27</opc> + <opc>27 /m=!64</opc> <mode>inv64</mode> </def> </instruction> @@ -1081,7 +1158,7 @@ <instruction> <mnemonic>das</mnemonic> <def> - <opc>2f</opc> + <opc>2f /m=!64</opc> <mode>inv64</mode> </def> </instruction> @@ -1091,42 +1168,42 @@ <def> <pfx>oso</pfx> <opc>48</opc> - <opr>eAX</opr> + <opr>R0z</opr> </def> <def> <pfx>oso</pfx> <opc>49</opc> - <opr>eCX</opr> + <opr>R1z</opr> </def> <def> <pfx>oso</pfx> <opc>4a</opc> - <opr>eDX</opr> + <opr>R2z</opr> </def> <def> <pfx>oso</pfx> <opc>4b</opc> - <opr>eBX</opr> + <opr>R3z</opr> </def> <def> <pfx>oso</pfx> <opc>4c</opc> - <opr>eSP</opr> + <opr>R4z</opr> </def> <def> <pfx>oso</pfx> <opc>4d</opc> - <opr>eBP</opr> + <opr>R5z</opr> </def> <def> <pfx>oso</pfx> <opc>4e</opc> - <opr>eSI</opr> + <opr>R6z</opr> </def> <def> <pfx>oso</pfx> <opc>4f</opc> - <opr>eDI</opr> + <opr>R7z</opr> </def> <def> <pfx>aso rexw rexr rexx rexb</pfx> @@ -1157,9 +1234,10 @@ <instruction> <mnemonic>divpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 5e</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 5e</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -1168,7 +1246,8 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 5e</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -1176,8 +1255,9 @@ <mnemonic>divsd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 5e</opc> - <opr>V W</opr> + <opc>/sse=f2 0f 5e</opc> + <opr>V H MqU</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -1185,8 +1265,29 @@ <mnemonic>divss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 5e</opc> - <opr>V W</opr> + <opc>/sse=f3 0f 5e</opc> + <opr>V H MdU</opr> + <cpuid>sse avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>dppd</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f 3a 41</opc> + <opr>V H W Ib</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>dpps</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 3a 40</opc> + <opr>V H W Ib</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -1202,13 +1303,23 @@ <def> <opc>c8</opc> <opr>Iw Ib</opr> - <mode>def64 depM</mode> + <mode>def64</mode> + </def> + </instruction> + + <instruction> + <mnemonic>extractps</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 3a 17</opc> + <opr>MdRy V Ib</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> <instruction> <mnemonic>f2xm1</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=30</opc> </def> @@ -1216,7 +1327,7 @@ <instruction> <mnemonic>fabs</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=21</opc> </def> @@ -1224,7 +1335,7 @@ <instruction> <mnemonic>fadd</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>dc /mod=!11 /reg=0</opc> @@ -1303,7 +1414,7 @@ <instruction> <mnemonic>faddp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>de /mod=11 /x87=00</opc> <opr>ST0 ST0</opr> @@ -1340,7 +1451,7 @@ <instruction> <mnemonic>fbld</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>df /mod=!11 /reg=4</opc> @@ -1350,7 +1461,7 @@ <instruction> <mnemonic>fbstp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>df /mod=!11 /reg=6</opc> @@ -1360,7 +1471,7 @@ <instruction> <mnemonic>fchs</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=20</opc> </def> @@ -1368,7 +1479,7 @@ <instruction> <mnemonic>fclex</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>db /mod=11 /x87=22</opc> </def> @@ -1376,7 +1487,7 @@ <instruction> <mnemonic>fcmovb</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>da /mod=11 /x87=00</opc> <opr>ST0 ST0</opr> @@ -1413,7 +1524,7 @@ <instruction> <mnemonic>fcmove</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>da /mod=11 /x87=08</opc> <opr>ST0 ST0</opr> @@ -1450,7 +1561,7 @@ <instruction> <mnemonic>fcmovbe</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>da /mod=11 /x87=10</opc> <opr>ST0 ST0</opr> @@ -1487,7 +1598,7 @@ <instruction> <mnemonic>fcmovu</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>da /mod=11 /x87=18</opc> <opr>ST0 ST0</opr> @@ -1524,7 +1635,7 @@ <instruction> <mnemonic>fcmovnb</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>db /mod=11 /x87=00</opc> <opr>ST0 ST0</opr> @@ -1561,7 +1672,7 @@ <instruction> <mnemonic>fcmovne</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>db /mod=11 /x87=08</opc> <opr>ST0 ST0</opr> @@ -1598,7 +1709,7 @@ <instruction> <mnemonic>fcmovnbe</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>db /mod=11 /x87=10</opc> <opr>ST0 ST0</opr> @@ -1635,7 +1746,7 @@ <instruction> <mnemonic>fcmovnu</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>db /mod=11 /x87=18</opc> <opr>ST0 ST0</opr> @@ -1672,7 +1783,7 @@ <instruction> <mnemonic>fucomi</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>db /mod=11 /x87=28</opc> <opr>ST0 ST0</opr> @@ -1709,7 +1820,7 @@ <instruction> <mnemonic>fcom</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>d8 /mod=!11 /reg=2</opc> @@ -1756,7 +1867,7 @@ <instruction> <mnemonic>fcom2</mnemonic> - <class>X87 UNDOC</class> + <cpuid>X87 UNDOC</cpuid> <def> <opc>dc /mod=11 /x87=10</opc> <opr>ST0</opr> @@ -1793,7 +1904,7 @@ <instruction> <mnemonic>fcomp3</mnemonic> - <class>X87 UNDOC</class> + <cpuid>X87 UNDOC</cpuid> <def> <opc>dc /mod=11 /x87=18</opc> <opr>ST0</opr> @@ -1830,7 +1941,7 @@ <instruction> <mnemonic>fcomi</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>db /mod=11 /x87=30</opc> <opr>ST0 ST0</opr> @@ -1867,7 +1978,7 @@ <instruction> <mnemonic>fucomip</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>df /mod=11 /x87=28</opc> <opr>ST0 ST0</opr> @@ -1904,7 +2015,7 @@ <instruction> <mnemonic>fcomip</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>df /mod=11 /x87=30</opc> <opr>ST0 ST0</opr> @@ -1941,7 +2052,7 @@ <instruction> <mnemonic>fcomp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>d8 /mod=!11 /reg=3</opc> @@ -1988,7 +2099,7 @@ <instruction> <mnemonic>fcomp5</mnemonic> - <class>X87 UNDOC</class> + <cpuid>X87 UNDOC</cpuid> <def> <opc>de /mod=11 /x87=10</opc> <opr>ST0</opr> @@ -2025,7 +2136,7 @@ <instruction> <mnemonic>fcompp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>de /mod=11 /x87=19</opc> </def> @@ -2033,7 +2144,7 @@ <instruction> <mnemonic>fcos</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=3f</opc> </def> @@ -2041,7 +2152,7 @@ <instruction> <mnemonic>fdecstp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=36</opc> </def> @@ -2049,7 +2160,7 @@ <instruction> <mnemonic>fdiv</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>dc /mod=!11 /reg=6</opc> @@ -2128,7 +2239,7 @@ <instruction> <mnemonic>fdivp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>de /mod=11 /x87=38</opc> <opr>ST0 ST0</opr> @@ -2165,7 +2276,7 @@ <instruction> <mnemonic>fdivr</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>dc /mod=!11 /reg=7</opc> @@ -2244,7 +2355,7 @@ <instruction> <mnemonic>fdivrp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>de /mod=11 /x87=30</opc> <opr>ST0 ST0</opr> @@ -2288,7 +2399,7 @@ <instruction> <mnemonic>ffree</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>dd /mod=11 /x87=00</opc> <opr>ST0</opr> @@ -2325,7 +2436,7 @@ <instruction> <mnemonic>ffreep</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>df /mod=11 /x87=00</opc> <opr>ST0</opr> @@ -2362,7 +2473,7 @@ <instruction> <mnemonic>ficom</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>de /mod=!11 /reg=2</opc> @@ -2377,7 +2488,7 @@ <instruction> <mnemonic>ficomp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>de /mod=!11 /reg=3</opc> @@ -2392,7 +2503,7 @@ <instruction> <mnemonic>fild</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>df /mod=!11 /reg=0</opc> @@ -2411,8 +2522,8 @@ </instruction> <instruction> - <mnemonic>fncstp</mnemonic> - <class>X87</class> + <mnemonic>fincstp</mnemonic> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=37</opc> </def> @@ -2420,7 +2531,7 @@ <instruction> <mnemonic>fninit</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>db /mod=11 /x87=23</opc> </def> @@ -2428,7 +2539,7 @@ <instruction> <mnemonic>fiadd</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>da /mod=!11 /reg=0</opc> @@ -2443,7 +2554,7 @@ <instruction> <mnemonic>fidivr</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>da /mod=!11 /reg=7</opc> @@ -2458,7 +2569,7 @@ <instruction> <mnemonic>fidiv</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>da /mod=!11 /reg=6</opc> @@ -2473,7 +2584,7 @@ <instruction> <mnemonic>fisub</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>da /mod=!11 /reg=4</opc> @@ -2488,7 +2599,7 @@ <instruction> <mnemonic>fisubr</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>da /mod=!11 /reg=5</opc> @@ -2503,7 +2614,7 @@ <instruction> <mnemonic>fist</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>df /mod=!11 /reg=2</opc> @@ -2518,7 +2629,7 @@ <instruction> <mnemonic>fistp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>df /mod=!11 /reg=3</opc> @@ -2538,7 +2649,7 @@ <instruction> <mnemonic>fisttp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>db /mod=!11 /reg=1</opc> @@ -2558,7 +2669,7 @@ <instruction> <mnemonic>fld</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>db /mod=!11 /reg=5</opc> @@ -2610,7 +2721,7 @@ <instruction> <mnemonic>fld1</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=28</opc> </def> @@ -2618,7 +2729,7 @@ <instruction> <mnemonic>fldl2t</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=29</opc> </def> @@ -2626,15 +2737,15 @@ <instruction> <mnemonic>fldl2e</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=2a</opc> </def> </instruction> <instruction> - <mnemonic>fldlpi</mnemonic> - <class>X87</class> + <mnemonic>fldpi</mnemonic> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=2b</opc> </def> @@ -2642,7 +2753,7 @@ <instruction> <mnemonic>fldlg2</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=2c</opc> </def> @@ -2650,7 +2761,7 @@ <instruction> <mnemonic>fldln2</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=2d</opc> </def> @@ -2658,7 +2769,7 @@ <instruction> <mnemonic>fldz</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=2e</opc> </def> @@ -2666,7 +2777,7 @@ <instruction> <mnemonic>fldcw</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>d9 /mod=!11 /reg=5</opc> @@ -2676,7 +2787,7 @@ <instruction> <mnemonic>fldenv</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>d9 /mod=!11 /reg=4</opc> @@ -2686,7 +2797,7 @@ <instruction> <mnemonic>fmul</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>dc /mod=!11 /reg=1</opc> @@ -2765,7 +2876,7 @@ <instruction> <mnemonic>fmulp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>de /mod=11 /x87=08</opc> <opr>ST0 ST0</opr> @@ -2802,7 +2913,7 @@ <instruction> <mnemonic>fimul</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>da /mod=!11 /reg=1</opc> @@ -2817,15 +2928,39 @@ <instruction> <mnemonic>fnop</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=10</opc> </def> </instruction> + + <instruction> + <mnemonic>fndisi</mnemonic> + <cpuid>X87</cpuid> + <def> + <opc>db /mod=11 /x87=21</opc> + </def> + </instruction> + + <instruction> + <mnemonic>fneni</mnemonic> + <cpuid>X87</cpuid> + <def> + <opc>db /mod=11 /x87=20</opc> + </def> + </instruction> + + <instruction> + <mnemonic>fnsetpm</mnemonic> + <cpuid>X87</cpuid> + <def> + <opc>db /mod=11 /x87=24</opc> + </def> + </instruction> <instruction> <mnemonic>fpatan</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=33</opc> </def> @@ -2833,7 +2968,7 @@ <instruction> <mnemonic>fprem</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=38</opc> </def> @@ -2841,7 +2976,7 @@ <instruction> <mnemonic>fprem1</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=35</opc> </def> @@ -2849,7 +2984,7 @@ <instruction> <mnemonic>fptan</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=32</opc> </def> @@ -2857,7 +2992,7 @@ <instruction> <mnemonic>frndint</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=3c</opc> </def> @@ -2865,17 +3000,25 @@ <instruction> <mnemonic>frstor</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>dd /mod=!11 /reg=4</opc> <opr>M</opr> </def> </instruction> + + <instruction> + <mnemonic>frstpm</mnemonic> + <cpuid>X87</cpuid> + <def> + <opc>db /mod=11 /x87=25</opc> + </def> + </instruction> <instruction> <mnemonic>fnsave</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>dd /mod=!11 /reg=6</opc> @@ -2885,7 +3028,7 @@ <instruction> <mnemonic>fscale</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=3d</opc> </def> @@ -2893,7 +3036,7 @@ <instruction> <mnemonic>fsin</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=3e</opc> </def> @@ -2901,7 +3044,7 @@ <instruction> <mnemonic>fsincos</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=3b</opc> </def> @@ -2909,7 +3052,7 @@ <instruction> <mnemonic>fsqrt</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=3a</opc> </def> @@ -2917,7 +3060,7 @@ <instruction> <mnemonic>fstp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>db /mod=!11 /reg=7</opc> @@ -3077,7 +3220,7 @@ <instruction> <mnemonic>fst</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>d9 /mod=!11 /reg=2</opc> @@ -3124,7 +3267,7 @@ <instruction> <mnemonic>fnstcw</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>d9 /mod=!11 /reg=7</opc> @@ -3134,7 +3277,7 @@ <instruction> <mnemonic>fnstenv</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>d9 /mod=!11 /reg=6</opc> @@ -3144,7 +3287,7 @@ <instruction> <mnemonic>fnstsw</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>dd /mod=!11 /reg=7</opc> @@ -3158,7 +3301,7 @@ <instruction> <mnemonic>fsub</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>d8 /mod=!11 /reg=4</opc> @@ -3237,7 +3380,7 @@ <instruction> <mnemonic>fsubp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>de /mod=11 /x87=28</opc> <opr>ST0 ST0</opr> @@ -3274,7 +3417,7 @@ <instruction> <mnemonic>fsubr</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <pfx>aso rexr rexx rexb</pfx> <opc>dc /mod=!11 /reg=5</opc> @@ -3353,7 +3496,7 @@ <instruction> <mnemonic>fsubrp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>de /mod=11 /x87=20</opc> <opr>ST0 ST0</opr> @@ -3390,7 +3533,7 @@ <instruction> <mnemonic>ftst</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=24</opc> </def> @@ -3398,7 +3541,7 @@ <instruction> <mnemonic>fucom</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>dd /mod=11 /x87=20</opc> <opr>ST0</opr> @@ -3435,7 +3578,7 @@ <instruction> <mnemonic>fucomp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>dd /mod=11 /x87=28</opc> <opr>ST0</opr> @@ -3472,7 +3615,7 @@ <instruction> <mnemonic>fucompp</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>da /mod=11 /x87=29</opc> </def> @@ -3480,7 +3623,7 @@ <instruction> <mnemonic>fxam</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=25</opc> </def> @@ -3488,7 +3631,7 @@ <instruction> <mnemonic>fxch</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=08</opc> <opr>ST0 ST0</opr> @@ -3525,7 +3668,7 @@ <instruction> <mnemonic>fxch4</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>dd /mod=11 /x87=08</opc> <opr>ST0</opr> @@ -3562,7 +3705,7 @@ <instruction> <mnemonic>fxch7</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>df /mod=11 /x87=08</opc> <opr>ST0</opr> @@ -3601,7 +3744,7 @@ <mnemonic>fxrstor</mnemonic> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>0f ae /mod=11 /reg=1</opc> + <opc>0f ae /mod=!11 /reg=1</opc> <opr>M</opr> </def> </instruction> @@ -3610,14 +3753,14 @@ <mnemonic>fxsave</mnemonic> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>0f ae /mod=11 /reg=0</opc> + <opc>0f ae /mod=!11 /reg=0</opc> <opr>M</opr> </def> </instruction> <instruction> - <mnemonic>fpxtract</mnemonic> - <class>X87</class> + <mnemonic>fxtract</mnemonic> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=34</opc> </def> @@ -3625,7 +3768,7 @@ <instruction> <mnemonic>fyl2x</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=31</opc> </def> @@ -3633,7 +3776,7 @@ <instruction> <mnemonic>fyl2xp1</mnemonic> - <class>X87</class> + <cpuid>X87</cpuid> <def> <opc>d9 /mod=11 /x87=39</opc> </def> @@ -3703,13 +3846,11 @@ <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>69</opc> <opr>Gv Ev Iz</opr> - <syn>sext</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>6b</opc> - <opr>Gv Ev Ib</opr> - <syn>sext</syn> + <opr>Gv Ev sIb</opr> </def> </instruction> @@ -3718,42 +3859,42 @@ <def> <pfx>oso</pfx> <opc>40</opc> - <opr>eAX</opr> + <opr>R0z</opr> </def> <def> <pfx>oso</pfx> <opc>41</opc> - <opr>eCX</opr> + <opr>R1z</opr> </def> <def> <pfx>oso</pfx> <opc>42</opc> - <opr>eDX</opr> + <opr>R2z</opr> </def> <def> <pfx>oso</pfx> <opc>43</opc> - <opr>eBX</opr> + <opr>R3z</opr> </def> <def> <pfx>oso</pfx> <opc>44</opc> - <opr>eSP</opr> + <opr>R4z</opr> </def> <def> <pfx>oso</pfx> <opc>45</opc> - <opr>eBP</opr> + <opr>R5z</opr> </def> <def> <pfx>oso</pfx> <opc>46</opc> - <opr>eSI</opr> + <opr>R6z</opr> </def> <def> <pfx>oso</pfx> <opc>47</opc> - <opr>eDI</opr> + <opr>R7z</opr> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> @@ -3770,6 +3911,7 @@ <instruction> <mnemonic>insb</mnemonic> <def> + <pfx>rep seg</pfx> <opc>6c</opc> </def> </instruction> @@ -3777,7 +3919,7 @@ <instruction> <mnemonic>insw</mnemonic> <def> - <pfx>oso</pfx> + <pfx>rep oso seg</pfx> <opc>6d /o=16</opc> </def> </instruction> @@ -3785,7 +3927,7 @@ <instruction> <mnemonic>insd</mnemonic> <def> - <pfx>oso</pfx> + <pfx>rep oso seg</pfx> <opc>6d /o=32</opc> </def> </instruction> @@ -3815,7 +3957,7 @@ <instruction> <mnemonic>into</mnemonic> <def> - <opc>ce</opc> + <opc>ce /m=!64</opc> <mode>inv64</mode> </def> </instruction> @@ -3831,11 +3973,11 @@ <mnemonic>invept</mnemonic> <vendor>intel</vendor> <def> - <opc>sse66 0f 38 80 /m=32</opc> + <opc>/sse=66 0f 38 80 /m=32</opc> <opr>Gd Mo</opr> </def> <def> - <opc>sse66 0f 38 80 /m=64</opc> + <opc>/sse=66 0f 38 80 /m=64</opc> <opr>Gq Mo</opr> </def> </instruction> @@ -3861,11 +4003,11 @@ <mnemonic>invvpid</mnemonic> <vendor>intel</vendor> <def> - <opc>sse66 0f 38 81 /m=32</opc> + <opc>/sse=66 0f 38 81 /m=32</opc> <opr>Gd Mo</opr> </def> <def> - <opc>sse66 0f 38 81 /m=64</opc> + <opc>/sse=66 0f 38 81 /m=64</opc> <opr>Gq Mo</opr> </def> </instruction> @@ -3904,7 +4046,7 @@ <pfx>oso</pfx> <opc>0f 80</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -3918,7 +4060,7 @@ <pfx>oso</pfx> <opc>0f 81</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -3932,7 +4074,7 @@ <pfx>oso</pfx> <opc>0f 82</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -3946,7 +4088,7 @@ <pfx>oso</pfx> <opc>0f 83</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -3960,7 +4102,7 @@ <pfx>oso</pfx> <opc>0f 84</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -3974,7 +4116,7 @@ <pfx>oso</pfx> <opc>0f 85</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -3988,7 +4130,7 @@ <pfx>oso</pfx> <opc>0f 86</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -4002,7 +4144,7 @@ <pfx>oso</pfx> <opc>0f 87</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -4016,7 +4158,7 @@ <pfx>oso</pfx> <opc>0f 88</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -4030,7 +4172,7 @@ <pfx>oso</pfx> <opc>0f 89</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -4044,7 +4186,7 @@ <pfx>oso</pfx> <opc>0f 8a</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -4058,7 +4200,7 @@ <pfx>oso</pfx> <opc>0f 8b</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -4072,7 +4214,7 @@ <pfx>oso</pfx> <opc>0f 8c</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -4086,7 +4228,7 @@ <pfx>oso</pfx> <opc>0f 8d</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -4100,7 +4242,7 @@ <pfx>oso</pfx> <opc>0f 8e</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -4114,7 +4256,7 @@ <pfx>oso</pfx> <opc>0f 8f</opc> <opr>Jz</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -4151,28 +4293,28 @@ <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>ff /reg=4</opc> <opr>Ev</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>ff /reg=5</opc> - <opr>Ep</opr> + <opr>Fv</opr> </def> <def> <pfx>oso</pfx> <opc>e9</opc> <opr>Jz</opr> - <mode>def64 depM</mode> - <syn>cast</syn> + <mode>def64</mode> </def> <def> - <opc>ea</opc> - <opr>Ap</opr> - <mode>inv64</mode> + <pfx>oso</pfx> + <opc>ea /m=!64</opc> + <opr>Av</opr> </def> <def> <opc>eb</opc> <opr>Jb</opr> + <mode>def64</mode> </def> </instruction> @@ -4193,19 +4335,10 @@ </instruction> <instruction> - <mnemonic>lddqu</mnemonic> - <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f f0</opc> - <opr>V M</opr> - </def> - </instruction> - - <instruction> <mnemonic>ldmxcsr</mnemonic> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>0f ae /reg=2 /mod=11</opc> + <opc>0f ae /reg=2 /mod=!11</opc> <opr>Md</opr> </def> </instruction> @@ -4214,9 +4347,8 @@ <mnemonic>lds</mnemonic> <def> <pfx>aso oso</pfx> - <opc>c5</opc> + <opc>c5 /vex=none /m=!64</opc> <opr>Gv M</opr> - <mode>inv64</mode> </def> </instruction> @@ -4233,9 +4365,8 @@ <mnemonic>les</mnemonic> <def> <pfx>aso oso</pfx> - <opc>c4</opc> + <opc>c4 /m=!64</opc> <opr>Gv M</opr> - <mode>inv64</mode> </def> </instruction> @@ -4271,7 +4402,7 @@ <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>0f b2</opc> - <opr>Gz M</opr> + <opr>Gv M</opr> </def> </instruction> @@ -4335,6 +4466,11 @@ <opc>0f 01 /reg=6 /mod=!11</opc> <opr>Ew</opr> </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>0f 01 /reg=6 /mod=11</opc> + <opr>Ew</opr> + </def> </instruction> <instruction> @@ -4347,7 +4483,7 @@ <instruction> <mnemonic>lodsb</mnemonic> <def> - <pfx>seg</pfx> + <pfx>rep seg</pfx> <opc>ac</opc> </def> </instruction> @@ -4355,7 +4491,7 @@ <instruction> <mnemonic>lodsw</mnemonic> <def> - <pfx>seg oso rexw</pfx> + <pfx>rep seg oso rexw</pfx> <opc>ad /o=16</opc> </def> </instruction> @@ -4363,7 +4499,7 @@ <instruction> <mnemonic>lodsd</mnemonic> <def> - <pfx>seg oso rexw</pfx> + <pfx>rep seg oso rexw</pfx> <opc>ad /o=32</opc> </def> </instruction> @@ -4371,13 +4507,13 @@ <instruction> <mnemonic>lodsq</mnemonic> <def> - <pfx>seg oso rexw</pfx> + <pfx>rep seg oso rexw</pfx> <opc>ad /o=64</opc> </def> </instruction> <instruction> - <mnemonic>loopnz</mnemonic> + <mnemonic>loopne</mnemonic> <def> <opc>e0</opc> <opr>Jb</opr> @@ -4422,26 +4558,28 @@ <mnemonic>maskmovq</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>0f f7</opc> - <opr>P PR</opr> + <opc>0f f7 /mod=11</opc> + <opr>P N</opr> </def> </instruction> <instruction> <mnemonic>maxpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 5f</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 5f</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>maxps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 5f</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -4449,8 +4587,9 @@ <mnemonic>maxsd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 5f</opc> - <opr>V W</opr> + <opc>/sse=f2 0f 5f</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -4458,8 +4597,9 @@ <mnemonic>maxss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 5f</opc> - <opr>V W</opr> + <opc>/sse=f3 0f 5f</opc> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -4494,9 +4634,10 @@ <instruction> <mnemonic>minpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 5d</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 5d</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -4505,7 +4646,8 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 5d</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -4513,8 +4655,9 @@ <mnemonic>minsd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 5d</opc> - <opr>V W</opr> + <opc>/sse=f2 0f 5d</opc> + <opr>V H MqU</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -4522,8 +4665,9 @@ <mnemonic>minss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 5d</opc> - <opr>V W</opr> + <opc>/sse=f3 0f 5d</opc> + <opr>V H MdU</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -4551,7 +4695,7 @@ <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>c7 /reg=0</opc> - <opr>Ev Iz</opr> + <opr>Ev sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -4574,14 +4718,14 @@ <opr>Gv Ev</opr> </def> <def> - <pfx>aso oso rexr rexx rexb</pfx> + <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>8c</opc> - <opr>Ev S</opr> + <opr>MwRv S</opr> </def> <def> - <pfx>aso oso rexr rexx rexb</pfx> + <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>8e</opc> - <opr>S Ev</opr> + <opr>S MwRv</opr> </def> <def> <opc>a0</opc> @@ -4604,100 +4748,100 @@ <def> <pfx>rexb</pfx> <opc>b0</opc> - <opr>ALr8b Ib</opr> + <opr>R0b Ib</opr> </def> <def> <pfx>rexb</pfx> <opc>b1</opc> - <opr>CLr9b Ib</opr> + <opr>R1b Ib</opr> </def> <def> <pfx>rexb</pfx> <opc>b2</opc> - <opr>DLr10b Ib</opr> + <opr>R2b Ib</opr> </def> <def> <pfx>rexb</pfx> <opc>b3</opc> - <opr>BLr11b Ib</opr> + <opr>R3b Ib</opr> </def> <def> <pfx>rexb</pfx> <opc>b4</opc> - <opr>AHr12b Ib</opr> + <opr>R4b Ib</opr> </def> <def> <pfx>rexb</pfx> <opc>b5</opc> - <opr>CHr13b Ib</opr> + <opr>R5b Ib</opr> </def> <def> <pfx>rexb</pfx> <opc>b6</opc> - <opr>DHr14b Ib</opr> + <opr>R6b Ib</opr> </def> <def> <pfx>rexb</pfx> <opc>b7</opc> - <opr>BHr15b Ib</opr> + <opr>R7b Ib</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>b8</opc> - <opr>rAXr8 Iv</opr> + <opr>R0v Iv</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>b9</opc> - <opr>rCXr9 Iv</opr> + <opr>R1v Iv</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>ba</opc> - <opr>rDXr10 Iv</opr> + <opr>R2v Iv</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>bb</opc> - <opr>rBXr11 Iv</opr> + <opr>R3v Iv</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>bc</opc> - <opr>rSPr12 Iv</opr> + <opr>R4v Iv</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>bd</opc> - <opr>rBPr13 Iv</opr> + <opr>R5v Iv</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>be</opc> - <opr>rSIr14 Iv</opr> + <opr>R6v Iv</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>bf</opc> - <opr>rDIr15 Iv</opr> + <opr>R7v Iv</opr> </def> <def> - <pfx>rexr</pfx> + <pfx>rexr rexw rexb</pfx> <opc>0f 20</opc> <opr>R C</opr> </def> <def> - <pfx>rexr</pfx> + <pfx>rexr rexw rexb</pfx> <opc>0f 21</opc> <opr>R D</opr> </def> <def> - <pfx>rexr</pfx> + <pfx>rexr rexw rexb</pfx> <opc>0f 22</opc> <opr>C R</opr> </def> <def> - <pfx>rexr</pfx> + <pfx>rexr rexw rexb</pfx> <opc>0f 23</opc> <opr>D R</opr> </def> @@ -4706,28 +4850,32 @@ <instruction> <mnemonic>movapd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 28</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 28</opc> <opr>V W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 29</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 29</opc> <opr>W V</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>movaps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 28</opc> <opr>V W</opr> + <cpuid>sse avx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 29</opc> <opr>W V</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -4735,23 +4883,52 @@ <mnemonic>movd</mnemonic> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>sse66 0f 6e</opc> - <opr>V Ex</opr> + <opc>0f 6e /o=16</opc> + <opr>P Ey</opr> + <cpuid>mmx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>0f 6e</opc> - <opr>P Ex</opr> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>0f 6e /o=32</opc> + <opr>P Ey</opr> + <cpuid>mmx</cpuid> </def> + <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>sse66 0f 7e</opc> - <opr>Ex V</opr> + <opc>/sse=66 0f 6e /o=16</opc> + <opr>V Ey</opr> + <cpuid>sse2 avx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>0f 7e</opc> - <opr>Ex P</opr> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=66 0f 6e /o=32</opc> + <opr>V Ey</opr> + <cpuid>sse2 avx</cpuid> + </def> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>0f 7e /o=16</opc> + <opr>Ey P</opr> + <cpuid>mmx</cpuid> + </def> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>0f 7e /o=32</opc> + <opr>Ey P</opr> + <cpuid>mmx</cpuid> + </def> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=66 0f 7e /o=16</opc> + <opr>Ey V</opr> + <cpuid>sse2 avx</cpuid> + </def> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=66 0f 7e /o=32</opc> + <opr>Ey V</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -4759,13 +4936,15 @@ <mnemonic>movhpd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 16 /mod=!11</opc> - <opr>V M</opr> + <opc>/sse=66 0f 16 /mod=!11</opc> + <opr>V H M</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 17</opc> + <opc>/sse=66 0f 17</opc> <opr>M V</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -4774,12 +4953,14 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 16 /mod=!11</opc> - <opr>V M</opr> + <opr>V H M</opr> + <cpuid>sse avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 17</opc> <opr>M V</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -4788,7 +4969,8 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 16 /mod=11</opc> - <opr>V VR</opr> + <opr>V H U</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -4796,14 +4978,15 @@ <mnemonic>movlpd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 12 /mod=!11</opc> + <opc>/sse=66 0f 12 /mod=!11</opc> <opr>V M</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 13</opc> + <opc>/sse=66 0f 13</opc> <opr>M V</opr> </def> + <cpuid>sse2 avx</cpuid> </instruction> <instruction> @@ -4818,6 +5001,7 @@ <opc>0f 13</opc> <opr>M V</opr> </def> + <cpuid>sse avx</cpuid> </instruction> <instruction> @@ -4825,16 +5009,18 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 12 /mod=11</opc> - <opr>V VR</opr> + <opr>V U</opr> + <cpuid>sse avx</cpuid> </def> </instruction> <instruction> <mnemonic>movmskpd</mnemonic> <def> - <pfx>oso rexr rexb</pfx> - <opc>sse66 0f 50</opc> - <opr>Gd VR</opr> + <pfx>oso rexr rexb vexl</pfx> + <opc>/sse=66 0f 50</opc> + <opr>Gd U</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -4843,16 +5029,18 @@ <def> <pfx>oso rexr rexb</pfx> <opc>0f 50</opc> - <opr>Gd VR</opr> + <opr>Gd U</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>movntdq</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f e7</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f e7</opc> <opr>M V</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -4868,24 +5056,27 @@ <instruction> <mnemonic>movntpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 2b</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 2b</opc> <opr>M V</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>movntps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 2b</opc> <opr>M V</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>movntq</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f e7</opc> <opr>M P</opr> </def> @@ -4894,31 +5085,59 @@ <instruction> <mnemonic>movq</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>0f 6f</opc> - <opr>P Q</opr> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>0f 6e /o=64</opc> + <opr>P Eq</opr> + <cpuid>mmx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f d6</opc> - <opr>W V</opr> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=66 0f 6e /o=64</opc> + <opr>V Eq</opr> + <cpuid>sse2 avx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 7e</opc> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>0f 7e /o=64</opc> + <opr>Eq P</opr> + <cpuid>mmx</cpuid> + </def> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=66 0f 7e /o=64</opc> + <opr>Eq V</opr> + <cpuid>sse2 avx</cpuid> + </def> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=f3 0f 7e</opc> <opr>V W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=66 0f d6</opc> + <opr>W V</opr> + <cpuid>sse2 avx</cpuid> + </def> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>0f 6f</opc> + <opr>P Q</opr> + <cpuid>mmx</cpuid> + </def> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> <opc>0f 7f</opc> <opr>Q P</opr> + <cpuid>mmx</cpuid> </def> </instruction> <instruction> <mnemonic>movsb</mnemonic> <def> - <pfx>seg</pfx> + <pfx>rep seg</pfx> <opc>a4</opc> </def> </instruction> @@ -4926,7 +5145,7 @@ <instruction> <mnemonic>movsw</mnemonic> <def> - <pfx>seg oso rexw</pfx> + <pfx>rep seg oso rexw</pfx> <opc>a5 /o=16</opc> </def> </instruction> @@ -4934,25 +5153,27 @@ <instruction> <mnemonic>movsd</mnemonic> <def> - <pfx>seg oso rexw</pfx> + <pfx>rep seg oso rexw</pfx> <opc>a5 /o=32</opc> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 10</opc> - <opr>V W</opr> + <opc>/sse=f2 0f 10</opc> + <opr>V MqU</opr> + <cpuid>sse2</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 11</opc> + <opc>/sse=f2 0f 11</opc> <opr>W V</opr> + <cpuid>sse2</cpuid> </def> </instruction> <instruction> <mnemonic>movsq</mnemonic> <def> - <pfx>seg oso rexw</pfx> + <pfx>rep seg oso rexw</pfx> <opc>a5 /o=64</opc> </def> </instruction> @@ -4961,13 +5182,15 @@ <mnemonic>movss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 10</opc> - <opr>V W</opr> + <opc>/sse=f3 0f 10</opc> + <opr>V MdU</opr> + <cpuid>sse</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 11</opc> + <opc>/sse=f3 0f 11</opc> <opr>W V</opr> + <cpuid>sse</cpuid> </def> </instruction> @@ -4981,35 +5204,39 @@ <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>0f bf</opc> - <opr>Gv Ew</opr> + <opr>Gy Ew</opr> </def> </instruction> <instruction> <mnemonic>movupd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 10</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 10</opc> <opr>V W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 11</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 11</opc> <opr>W V</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>movups</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 10</opc> <opr>V W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 11</opc> <opr>W V</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5023,7 +5250,7 @@ <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>0f b7</opc> - <opr>Gv Ew</opr> + <opr>Gy Ew</opr> </def> </instruction> @@ -5044,18 +5271,20 @@ <instruction> <mnemonic>mulpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 59</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 59</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>mulps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 59</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5063,8 +5292,9 @@ <mnemonic>mulsd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 59</opc> - <opr>V W</opr> + <opc>/sse=f2 0f 59</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5072,8 +5302,9 @@ <mnemonic>mulss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 59</opc> - <opr>V W</opr> + <opc>/sse=f3 0f 59</opc> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -5101,9 +5332,6 @@ <instruction> <mnemonic>nop</mnemonic> <def> - <opc>90</opc> - </def> - <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 19</opc> <opr>M</opr> @@ -5183,8 +5411,7 @@ <def> <pfx>oso rexw</pfx> <opc>0d</opc> - <opr>rAX Iz</opr> - <syn>sext</syn> + <opr>rAX sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5194,38 +5421,37 @@ <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>81 /reg=1</opc> - <opr>Ev Iz</opr> - <syn>sext</syn> + <opr>Ev sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>82 /reg=1</opc> + <opc>82 /reg=1 /m=!64</opc> <opr>Eb Ib</opr> - <mode>inv64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>83 /reg=1</opc> - <opr>Ev Ib</opr> - <syn>sext</syn> + <opr>Ev sIb</opr> </def> </instruction> <instruction> <mnemonic>orpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 56</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 56</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>orps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 56</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -5254,6 +5480,7 @@ <instruction> <mnemonic>outsb</mnemonic> <def> + <pfx>rep seg</pfx> <opc>6e</opc> </def> </instruction> @@ -5261,7 +5488,7 @@ <instruction> <mnemonic>outsw</mnemonic> <def> - <pfx>oso</pfx> + <pfx>rep oso seg</pfx> <opc>6f /o=16</opc> </def> </instruction> @@ -5269,72 +5496,72 @@ <instruction> <mnemonic>outsd</mnemonic> <def> - <pfx>oso</pfx> + <pfx>rep oso seg</pfx> <opc>6f /o=32</opc> </def> </instruction> <instruction> - <mnemonic>outsq</mnemonic> - <def> - <pfx>oso</pfx> - <opc>6f /o=64</opc> - </def> - </instruction> - - <instruction> <mnemonic>packsswb</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 63</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 63</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 63</opc> <opr>P Q</opr> + <cpuid>mmx</cpuid> </def> </instruction> <instruction> <mnemonic>packssdw</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 6b</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 6b</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 6b</opc> <opr>P Q</opr> + <cpuid>mmx</cpuid> </def> </instruction> <instruction> <mnemonic>packuswb</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 67</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 67</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 67</opc> <opr>P Q</opr> + <cpuid>mmx</cpuid> </def> </instruction> <instruction> <mnemonic>paddb</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f fc</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f fc</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f fc</opc> <opr>P Q</opr> + <cpuid>mmx</cpuid> </def> </instruction> @@ -5344,11 +5571,13 @@ <pfx>aso rexr rexx rexb</pfx> <opc>0f fd</opc> <opr>P Q</opr> + <cpuid>mmx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f fd</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f fd</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5358,11 +5587,13 @@ <pfx>aso rexr rexx rexb</pfx> <opc>0f fe</opc> <opr>P Q</opr> + <cpuid>mmx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f fe</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f fe</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5376,8 +5607,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f ec</opc> - <opr>V W</opr> + <opc>/sse=66 0f ec</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5390,8 +5622,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f ed</opc> - <opr>V W</opr> + <opc>/sse=66 0f ed</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5404,8 +5637,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f dc</opc> - <opr>V W</opr> + <opc>/sse=66 0f dc</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5418,8 +5652,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f dd</opc> - <opr>V W</opr> + <opc>/sse=66 0f dd</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5427,8 +5662,9 @@ <mnemonic>pand</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f db</opc> - <opr>V W</opr> + <opc>/sse=66 0f db</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5441,8 +5677,9 @@ <mnemonic>pandn</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f df</opc> - <opr>V W</opr> + <opc>/sse=66 0f df</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5455,8 +5692,9 @@ <mnemonic>pavgb</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f e0</opc> - <opr>V W</opr> + <opc>/sse=66 0f e0</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5469,8 +5707,9 @@ <mnemonic>pavgw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f e3</opc> - <opr>V W</opr> + <opc>/sse=66 0f e3</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5488,8 +5727,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 74</opc> - <opr>V W</opr> + <opc>/sse=66 0f 74</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5502,8 +5742,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 75</opc> - <opr>V W</opr> + <opc>/sse=66 0f 75</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5516,8 +5757,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 76</opc> - <opr>V W</opr> + <opc>/sse=66 0f 76</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5525,8 +5767,9 @@ <mnemonic>pcmpgtb</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 64</opc> - <opr>V W</opr> + <opc>/sse=66 0f 64</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5539,8 +5782,9 @@ <mnemonic>pcmpgtw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 65</opc> - <opr>V W</opr> + <opc>/sse=66 0f 65</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5553,8 +5797,9 @@ <mnemonic>pcmpgtd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 66</opc> - <opr>V W</opr> + <opc>/sse=66 0f 66</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5566,24 +5811,27 @@ <instruction> <mnemonic>pextrb</mnemonic> <def> - <pfx>aso rexr rexb</pfx> - <opc>sse66 0f 3a 14</opc> + <pfx>aso rexx rexr rexb</pfx> + <opc>/sse=66 0f 3a 14 /vexw=0</opc> <opr>MbRv V Ib</opr> <mode>def64</mode> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> <instruction> <mnemonic>pextrd</mnemonic> <def> - <pfx>aso rexr rexw rexb</pfx> - <opc>sse66 0f 3a 16 /o=16</opc> - <opr>Ev V Ib</opr> + <pfx>aso rexr rexx rexw rexb</pfx> + <opc>/sse=66 0f 3a 16 /o=16 /vexw=0</opc> + <opr>Ed V Ib</opr> + <cpuid>sse4.1 avx</cpuid> </def> <def> - <pfx>aso rexr rexw rexb</pfx> - <opc>sse66 0f 3a 16 /o=32</opc> - <opr>Ev V Ib</opr> + <pfx>aso rexr rexx rexw rexb</pfx> + <opc>/sse=66 0f 3a 16 /o=32 /vexw=0</opc> + <opr>Ed V Ib</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -5591,40 +5839,126 @@ <mnemonic>pextrq</mnemonic> <def> <pfx>aso rexr rexw rexb</pfx> - <opc>sse66 0f 3a 16 /o=64</opc> - <opr>Ev V Ib</opr> + <opc>/sse=66 0f 3a 16 /o=64 /vexw=1</opc> + <opr>Eq V Ib</opr> <mode>def64</mode> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> <instruction> <mnemonic>pextrw</mnemonic> <def> - <pfx>aso rexr rexb</pfx> - <opc>sse66 0f c5</opc> - <opr>Gd VR Ib</opr> + <pfx>aso rexw rexr rexb</pfx> + <opc>/sse=66 0f c5</opc> + <opr>Gd U Ib</opr> + <cpuid>sse avx</cpuid> </def> <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> + <pfx>aso rexw rexr rexx rexb</pfx> <opc>0f c5</opc> - <opr>Gd PR Ib</opr> + <opr>Gd N Ib</opr> + </def> + <def> + <pfx>aso rexw rexx rexr rexb</pfx> + <opc>/sse=66 0f 3a 15</opc> + <opr>MwRd V Ib</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pinsrb</mnemonic> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=66 0f 3a 20</opc> + <opr>V MbRd Ib</opr> + <cpuid>sse4.1</cpuid> </def> </instruction> <instruction> <mnemonic>pinsrw</mnemonic> <def> - <pfx>aso oso rexw rexr rexx rexb</pfx> + <pfx>aso rexw rexr rexx rexb</pfx> <opc>0f c4</opc> - <opr>P Ew Ib</opr> + <opr>P MwRy Ib</opr> + <mode>def64</mode> </def> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>sse66 0f c4</opc> - <opr>V Ew Ib</opr> + <opc>/sse=66 0f c4</opc> + <opr>V MwRy Ib</opr> + <mode>def64</mode> + <cpuid>sse2 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pinsrd</mnemonic> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=66 0f 3a 22 /o=16</opc> + <opr>V Ed Ib</opr> + <cpuid>sse4.1</cpuid> + </def> + + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/sse=66 0f 3a 22 /o=32</opc> + <opr>V Ed Ib</opr> + <cpuid>sse4.1</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pinsrq</mnemonic> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>/sse=66 0f 3a 22 /o=64</opc> + <opr>V Eq Ib</opr> + <cpuid>sse4.1</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vpinsrb</mnemonic> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>/vex=66_0f3a 20 /vexw=0 /vexl=0</opc> + <opr>V H MbRd Ib</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vpinsrd</mnemonic> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>/vex=66_0f3a 22 /m=!64 /vexw=0 /vexl=0</opc> + <opr>V H Ed Ib</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>/vex=66_0f3a 22 /m=64 /vexw=0 /vexl=0</opc> + <opr>V H Ed Ib</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + + <instruction> + <mnemonic>vpinsrq</mnemonic> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>/vex=66_0f3a 22 /m=64 /vexw=1 /vexl=0</opc> + <opr>V H Eq Ib</opr> + <cpuid>avx</cpuid> </def> </instruction> + <instruction> <mnemonic>pmaddwd</mnemonic> <def> @@ -5634,8 +5968,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f f5</opc> - <opr>V W</opr> + <opc>/sse=66 0f f5</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -5643,8 +5978,9 @@ <mnemonic>pmaxsw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f ee</opc> - <opr>V W</opr> + <opc>/sse=66 0f ee</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5662,8 +5998,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f de</opc> - <opr>V W</opr> + <opc>/sse=66 0f de</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5671,8 +6008,9 @@ <mnemonic>pminsw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f ea</opc> - <opr>V W</opr> + <opc>/sse=66 0f ea</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5685,8 +6023,9 @@ <mnemonic>pminub</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f da</opc> - <opr>V W</opr> + <opc>/sse=66 0f da</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5698,14 +6037,15 @@ <instruction> <mnemonic>pmovmskb</mnemonic> <def> - <pfx>rexr rexb</pfx> - <opc>sse66 0f d7</opc> - <opr>Gd VR</opr> + <pfx>oso rexr rexw rexb</pfx> + <opc>/sse=66 0f d7 /vexl=0</opc> + <opr>Gd U</opr> + <cpuid>sse2 avx</cpuid> </def> <def> - <pfx>oso rexr rexb</pfx> + <pfx>oso rexr rexw rexb</pfx> <opc>0f d7</opc> - <opr>Gd PR</opr> + <opr>Gd N</opr> </def> </instruction> @@ -5718,8 +6058,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f e4</opc> - <opr>V W</opr> + <opc>/sse=66 0f e4</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -5727,8 +6068,9 @@ <mnemonic>pmulhw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f e5</opc> - <opr>V W</opr> + <opc>/sse=66 0f e5</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5746,25 +6088,26 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f d5</opc> - <opr>V W</opr> + <opc>/sse=66 0f d5</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>pop</mnemonic> <def> - <opc>07</opc> + <opc>07 /m=!64</opc> <opr>ES</opr> <mode>inv64</mode> </def> <def> - <opc>17</opc> + <opc>17 /m=!64</opc> <opr>SS</opr> <mode>inv64</mode> </def> <def> - <opc>1f</opc> + <opc>1f /m=!64</opc> <opr>DS</opr> <mode>inv64</mode> </def> @@ -5779,56 +6122,56 @@ <def> <pfx>oso rexb</pfx> <opc>58</opc> - <opr>rAXr8</opr> - <mode>def64 depM</mode> + <opr>R0v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>59</opc> - <opr>rCXr9</opr> - <mode>def64 depM</mode> + <opr>R1v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>5a</opc> - <opr>rDXr10</opr> - <mode>def64 depM</mode> + <opr>R2v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>5b</opc> - <opr>rBXr11</opr> - <mode>def64 depM</mode> + <opr>R3v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>5c</opc> - <opr>rSPr12</opr> - <mode>def64 depM</mode> + <opr>R4v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>5d</opc> - <opr>rBPr13</opr> - <mode>def64 depM</mode> + <opr>R5v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>5e</opc> - <opr>rSIr14</opr> - <mode>def64 depM</mode> + <opr>R6v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>5f</opc> - <opr>rDIr15</opr> - <mode>def64 depM</mode> + <opr>R7v</opr> + <mode>def64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>8f /reg=0</opc> <opr>Ev</opr> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -5836,7 +6179,7 @@ <mnemonic>popa</mnemonic> <def> <pfx>oso</pfx> - <opc>61 /o=16</opc> + <opc>61 /o=16 /m=!64</opc> <mode>inv64</mode> </def> </instruction> @@ -5845,7 +6188,7 @@ <mnemonic>popad</mnemonic> <def> <pfx>oso</pfx> - <opc>61 /o=32</opc> + <opc>61 /o=32 /m=!64</opc> <mode>inv64</mode> </def> </instruction> @@ -5854,13 +6197,7 @@ <mnemonic>popfw</mnemonic> <def> <pfx>oso</pfx> - <opc>9d /m=32 /o=16</opc> - <mode>def64 depM</mode> - </def> - <def> - <pfx>oso</pfx> - <opc>9d /m=16 /o=16</opc> - <mode>def64 depM</mode> + <opc>9d /m=!64 /o=16</opc> </def> </instruction> @@ -5868,13 +6205,7 @@ <mnemonic>popfd</mnemonic> <def> <pfx>oso</pfx> - <opc>9d /m=16 /o=32</opc> - <mode>def64 depM</mode> - </def> - <def> - <pfx>oso</pfx> - <opc>9d /m=32 /o=32</opc> - <mode>def64 depM</mode> + <opc>9d /m=!64 /o=32</opc> </def> </instruction> @@ -5882,8 +6213,13 @@ <mnemonic>popfq</mnemonic> <def> <pfx>oso</pfx> + <opc>9d /m=64 /o=32</opc> + <mode>def64</mode> + </def> + <def> + <pfx>oso</pfx> <opc>9d /m=64 /o=64</opc> - <mode>def64 depM</mode> + <mode>def64</mode> </def> </instruction> @@ -5891,8 +6227,9 @@ <mnemonic>por</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f eb</opc> - <opr>V W</opr> + <opc>/sse=66 0f eb</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -5985,8 +6322,9 @@ <mnemonic>psadbw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f f6</opc> - <opr>V W</opr> + <opc>/sse=66 0f f6</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6004,12 +6342,13 @@ </def> </instruction> - <instruction> + <instruction> <mnemonic>psllw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f f1</opc> + <opc>/sse=66 0f f1</opc> <opr>V W</opr> + <cpuid>sse2</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6018,12 +6357,13 @@ </def> <def> <pfx>rexb</pfx> - <opc>sse66 0f 71 /reg=6</opc> - <opr>VR Ib</opr> + <opc>/sse=66 0f 71 /reg=6</opc> + <opr>U Ib</opr> + <cpuid>sse2</cpuid> </def> <def> <opc>0f 71 /reg=6</opc> - <opr>PR Ib</opr> + <opr>N Ib</opr> </def> </instruction> @@ -6031,8 +6371,9 @@ <mnemonic>pslld</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f f2</opc> + <opc>/sse=66 0f f2</opc> <opr>V W</opr> + <cpuid>sse2</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6041,12 +6382,13 @@ </def> <def> <pfx>rexb</pfx> - <opc>sse66 0f 72 /reg=6</opc> - <opr>VR Ib</opr> + <opc>/sse=66 0f 72 /reg=6</opc> + <opr>U Ib</opr> + <cpuid>sse2</cpuid> </def> <def> <opc>0f 72 /reg=6</opc> - <opr>PR Ib</opr> + <opr>N Ib</opr> </def> </instruction> @@ -6054,8 +6396,9 @@ <mnemonic>psllq</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f f3</opc> + <opc>/sse=66 0f f3</opc> <opr>V W</opr> + <cpuid>sse2</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6064,12 +6407,13 @@ </def> <def> <pfx>rexb</pfx> - <opc>sse66 0f 73 /reg=6</opc> - <opr>VR Ib</opr> + <opc>/sse=66 0f 73 /reg=6</opc> + <opr>U Ib</opr> + <cpuid>sse2</cpuid> </def> <def> <opc>0f 73 /reg=6</opc> - <opr>PR Ib</opr> + <opr>N Ib</opr> </def> </instruction> @@ -6082,17 +6426,19 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f e1</opc> - <opr>V W</opr> + <opc>/sse=66 0f e1</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>rexb</pfx> - <opc>sse66 0f 71 /reg=4</opc> - <opr>VR Ib</opr> + <opc>/sse=66 0f 71 /reg=4</opc> + <opr>H U Ib</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <opc>0f 71 /reg=4</opc> - <opr>PR Ib</opr> + <opr>N Ib</opr> </def> </instruction> @@ -6100,12 +6446,13 @@ <mnemonic>psrad</mnemonic> <def> <opc>0f 72 /reg=4</opc> - <opr>PR Ib</opr> + <opr>N Ib</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f e2</opc> - <opr>V W</opr> + <opc>/sse=66 0f e2</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6114,8 +6461,9 @@ </def> <def> <pfx>rexb</pfx> - <opc>sse66 0f 72 /reg=4</opc> - <opr>VR Ib</opr> + <opc>/sse=66 0f 72 /reg=4</opc> + <opr>H U Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -6123,7 +6471,7 @@ <mnemonic>psrlw</mnemonic> <def> <opc>0f 71 /reg=2</opc> - <opr>PR Ib</opr> + <opr>N Ib</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6132,13 +6480,15 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f d1</opc> - <opr>V W</opr> + <opc>/sse=66 0f d1</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>rexb</pfx> - <opc>sse66 0f 71 /reg=2</opc> - <opr>VR Ib</opr> + <opc>/sse=66 0f 71 /reg=2</opc> + <opr>H U Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -6146,7 +6496,7 @@ <mnemonic>psrld</mnemonic> <def> <opc>0f 72 /reg=2</opc> - <opr>PR Ib</opr> + <opr>N Ib</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6155,13 +6505,15 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f d2</opc> - <opr>V W</opr> + <opc>/sse=66 0f d2</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>rexb</pfx> - <opc>sse66 0f 72 /reg=2</opc> - <opr>VR Ib</opr> + <opc>/sse=66 0f 72 /reg=2</opc> + <opr>H U Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -6169,7 +6521,7 @@ <mnemonic>psrlq</mnemonic> <def> <opc>0f 73 /reg=2</opc> - <opr>PR Ib</opr> + <opr>N Ib</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6178,13 +6530,15 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f d3</opc> - <opr>V W</opr> + <opc>/sse=66 0f d3</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>rexb</pfx> - <opc>sse66 0f 73 /reg=2</opc> - <opr>VR Ib</opr> + <opc>/sse=66 0f 73 /reg=2</opc> + <opr>H U Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -6192,8 +6546,9 @@ <mnemonic>psubb</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f f8</opc> - <opr>V W</opr> + <opc>/sse=66 0f f8</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6206,8 +6561,9 @@ <mnemonic>psubw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f f9</opc> - <opr>V W</opr> + <opc>/sse=66 0f f9</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6225,8 +6581,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f fa</opc> - <opr>V W</opr> + <opc>/sse=66 0f fa</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -6239,8 +6596,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f e8</opc> - <opr>V W</opr> + <opc>/sse=66 0f e8</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -6253,8 +6611,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f e9</opc> - <opr>V W</opr> + <opc>/sse=66 0f e9</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -6267,8 +6626,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f d8</opc> - <opr>V W</opr> + <opc>/sse=66 0f d8</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -6281,8 +6641,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f d9</opc> - <opr>V W</opr> + <opc>/sse=66 0f d9</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -6290,8 +6651,9 @@ <mnemonic>punpckhbw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 68</opc> - <opr>V W</opr> + <opc>/sse=66 0f 68</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6304,8 +6666,9 @@ <mnemonic>punpckhwd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 69</opc> - <opr>V W</opr> + <opc>/sse=66 0f 69</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6318,8 +6681,9 @@ <mnemonic>punpckhdq</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 6a</opc> - <opr>V W</opr> + <opc>/sse=66 0f 6a</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6332,8 +6696,9 @@ <mnemonic>punpcklbw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 60</opc> - <opr>V W</opr> + <opc>/sse=66 0f 60</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6346,8 +6711,9 @@ <mnemonic>punpcklwd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 61</opc> - <opr>V W</opr> + <opc>/sse=66 0f 61</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6360,8 +6726,9 @@ <mnemonic>punpckldq</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 62</opc> - <opr>V W</opr> + <opc>/sse=66 0f 62</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6373,6 +6740,7 @@ <instruction> <mnemonic>pi2fw</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=0c</opc> <opr>P Q</opr> </def> @@ -6381,6 +6749,7 @@ <instruction> <mnemonic>pi2fd</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=0d</opc> <opr>P Q</opr> </def> @@ -6389,6 +6758,7 @@ <instruction> <mnemonic>pf2iw</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=1c</opc> <opr>P Q</opr> </def> @@ -6397,6 +6767,7 @@ <instruction> <mnemonic>pf2id</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=1d</opc> <opr>P Q</opr> </def> @@ -6405,6 +6776,7 @@ <instruction> <mnemonic>pfnacc</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=8a</opc> <opr>P Q</opr> </def> @@ -6413,6 +6785,7 @@ <instruction> <mnemonic>pfpnacc</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=8e</opc> <opr>P Q</opr> </def> @@ -6421,6 +6794,7 @@ <instruction> <mnemonic>pfcmpge</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=90</opc> <opr>P Q</opr> </def> @@ -6429,6 +6803,7 @@ <instruction> <mnemonic>pfmin</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=94</opc> <opr>P Q</opr> </def> @@ -6437,6 +6812,7 @@ <instruction> <mnemonic>pfrcp</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=96</opc> <opr>P Q</opr> </def> @@ -6445,6 +6821,7 @@ <instruction> <mnemonic>pfrsqrt</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=97</opc> <opr>P Q</opr> </def> @@ -6453,6 +6830,7 @@ <instruction> <mnemonic>pfsub</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=9a</opc> <opr>P Q</opr> </def> @@ -6461,6 +6839,7 @@ <instruction> <mnemonic>pfadd</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=9e</opc> <opr>P Q</opr> </def> @@ -6469,6 +6848,7 @@ <instruction> <mnemonic>pfcmpgt</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=a0</opc> <opr>P Q</opr> </def> @@ -6477,6 +6857,7 @@ <instruction> <mnemonic>pfmax</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=a4</opc> <opr>P Q</opr> </def> @@ -6485,6 +6866,7 @@ <instruction> <mnemonic>pfrcpit1</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=a6</opc> <opr>P Q</opr> </def> @@ -6493,6 +6875,7 @@ <instruction> <mnemonic>pfrsqit1</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=a7</opc> <opr>P Q</opr> </def> @@ -6501,6 +6884,7 @@ <instruction> <mnemonic>pfsubr</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=aa</opc> <opr>P Q</opr> </def> @@ -6509,6 +6893,7 @@ <instruction> <mnemonic>pfacc</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=ae</opc> <opr>P Q</opr> </def> @@ -6517,6 +6902,7 @@ <instruction> <mnemonic>pfcmpeq</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=b0</opc> <opr>P Q</opr> </def> @@ -6525,6 +6911,7 @@ <instruction> <mnemonic>pfmul</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=b4</opc> <opr>P Q</opr> </def> @@ -6533,6 +6920,7 @@ <instruction> <mnemonic>pfrcpit2</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=b6</opc> <opr>P Q</opr> </def> @@ -6541,6 +6929,7 @@ <instruction> <mnemonic>pmulhrw</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=b7</opc> <opr>P Q</opr> </def> @@ -6549,6 +6938,7 @@ <instruction> <mnemonic>pswapd</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=bb</opc> <opr>P Q</opr> </def> @@ -6557,6 +6947,7 @@ <instruction> <mnemonic>pavgusb</mnemonic> <def> + <pfx>aso rexr rexx rexb</pfx> <opc>0f 0f /3dnow=bf</opc> <opr>P Q</opr> </def> @@ -6565,22 +6956,22 @@ <instruction> <mnemonic>push</mnemonic> <def> - <opc>06</opc> + <opc>06 /m=!64</opc> <opr>ES</opr> <mode>inv64</mode> </def> <def> - <opc>0e</opc> + <opc>0e /m=!64</opc> <opr>CS</opr> <mode>inv64</mode> </def> <def> - <opc>16</opc> + <opc>16 /m=!64</opc> <opr>SS</opr> <mode>inv64</mode> </def> <def> - <opc>1e</opc> + <opc>1e /m=!64</opc> <opr>DS</opr> <mode>inv64</mode> </def> @@ -6595,56 +6986,56 @@ <def> <pfx>oso rexb</pfx> <opc>50</opc> - <opr>rAXr8</opr> - <mode>def64 depM</mode> + <opr>R0v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>51</opc> - <opr>rCXr9</opr> - <mode>def64 depM</mode> + <opr>R1v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>52</opc> - <opr>rDXr10</opr> - <mode>def64 depM</mode> + <opr>R2v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>53</opc> - <opr>rBXr11</opr> - <mode>def64 depM</mode> + <opr>R3v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>54</opc> - <opr>rSPr12</opr> - <mode>def64 depM</mode> + <opr>R4v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>55</opc> - <opr>rBPr13</opr> - <mode>def64 depM</mode> + <opr>R5v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>56</opc> - <opr>rSIr14</opr> - <mode>def64 depM</mode> + <opr>R6v</opr> + <mode>def64</mode> </def> <def> <pfx>oso rexb</pfx> <opc>57</opc> - <opr>rDIr15</opr> - <mode>def64 depM</mode> + <opr>R7v</opr> + <mode>def64</mode> </def> <def> <pfx>oso</pfx> <opc>68</opc> - <opr>Iz</opr> - <syn>cast</syn> + <opr>sIz</opr> + <mode>def64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> @@ -6653,9 +7044,10 @@ <mode>def64</mode> </def> <def> + <pfx>oso</pfx> <opc>6a</opc> - <opr>Ib</opr> - <syn>sext</syn> + <opr>sIb</opr> + <mode>def64</mode> </def> </instruction> @@ -6663,7 +7055,7 @@ <mnemonic>pusha</mnemonic> <def> <pfx>oso</pfx> - <opc>60 /o=16</opc> + <opc>60 /o=16 /m=!64</opc> <mode>inv64</mode> </def> </instruction> @@ -6672,7 +7064,7 @@ <mnemonic>pushad</mnemonic> <def> <pfx>oso</pfx> - <opc>60 /o=32</opc> + <opc>60 /o=32 /m=!64</opc> <mode>inv64</mode> </def> </instruction> @@ -6681,13 +7073,7 @@ <mnemonic>pushfw</mnemonic> <def> <pfx>oso</pfx> - <opc>9c /m=32 /o=16</opc> - <mode>def64</mode> - </def> - <def> - <pfx>oso</pfx> - <opc>9c /m=16 /o=16</opc> - <mode>def64</mode> + <opc>9c /m=!64 /o=16</opc> </def> <def> <pfx>oso rexw</pfx> @@ -6700,13 +7086,7 @@ <mnemonic>pushfd</mnemonic> <def> <pfx>oso</pfx> - <opc>9c /m=16 /o=32</opc> - <mode>def64</mode> - </def> - <def> - <pfx>oso</pfx> - <opc>9c /m=32 /o=32</opc> - <mode>def64</mode> + <opc>9c /m=!64 /o=32</opc> </def> </instruction> @@ -6728,8 +7108,9 @@ <mnemonic>pxor</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f ef</opc> - <opr>V W</opr> + <opc>/sse=66 0f ef</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -6759,13 +7140,11 @@ <pfx>aso rexw rexr rexx rexb</pfx> <opc>d2 /reg=2</opc> <opr>Eb CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>d3 /reg=2</opc> <opr>Ev CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> @@ -6800,13 +7179,11 @@ <pfx>aso rexw rexr rexx rexb</pfx> <opc>d2 /reg=3</opc> <opr>Eb CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>d3 /reg=3</opc> <opr>Ev CL</opr> - <syn>cast</syn> </def> </instruction> @@ -6831,13 +7208,11 @@ <pfx>aso rexw rexr rexx rexb</pfx> <opc>d2 /reg=0</opc> <opr>Eb CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>d3 /reg=0</opc> <opr>Ev CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> @@ -6872,22 +7247,21 @@ <pfx>aso rexw rexr rexx rexb</pfx> <opc>d2 /reg=1</opc> <opr>Eb CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>d3 /reg=1</opc> <opr>Ev CL</opr> - <syn>cast</syn> </def> </instruction> <instruction> <mnemonic>rcpps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 53</opc> <opr>V W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -6895,8 +7269,9 @@ <mnemonic>rcpss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 53</opc> + <opc>/sse=f3 0f 53</opc> <opr>V W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -6975,9 +7350,10 @@ <instruction> <mnemonic>rsqrtps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 52</opc> <opr>V W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -6985,8 +7361,9 @@ <mnemonic>rsqrtss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 52</opc> + <opc>/sse=f3 0f 52</opc> <opr>V W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -7004,7 +7381,7 @@ <instruction> <mnemonic>salc</mnemonic> <def> - <opc>d6</opc> + <opc>d6 /m=!64</opc> <mode>inv64</mode> </def> </instruction> @@ -7035,13 +7412,11 @@ <pfx>aso rexw rexr rexx rexb</pfx> <opc>d2 /reg=7</opc> <opr>Eb CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>d3 /reg=7</opc> <opr>Ev CL</opr> - <syn>cast</syn> </def> </instruction> @@ -7066,13 +7441,11 @@ <pfx>aso rexw rexr rexx rexb</pfx> <opc>d2 /reg=6</opc> <opr>Eb CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>d3 /reg=6</opc> <opr>Ev CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> @@ -7083,7 +7456,6 @@ <pfx>aso rexr rexx rexb</pfx> <opc>d2 /reg=4</opc> <opr>Eb CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> @@ -7123,7 +7495,6 @@ <pfx>aso rexw rexr rexx rexb</pfx> <opc>d2 /reg=5</opc> <opr>Eb CL</opr> - <syn>cast</syn> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> @@ -7144,7 +7515,6 @@ <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>d3 /reg=5</opc> <opr>Ev CL</opr> - <syn>cast</syn> </def> </instruction> @@ -7177,8 +7547,7 @@ <def> <pfx>oso rexw</pfx> <opc>1d</opc> - <opr>rAX Iz</opr> - <syn>sext</syn> + <opr>rAX sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -7188,26 +7557,25 @@ <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>81 /reg=3</opc> - <opr>Ev Iz</opr> - <syn>sext</syn> + <opr>Ev sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>82 /reg=3</opc> + <opc>82 /reg=3 /m=!64</opc> <opr>Eb Ib</opr> <mode>inv64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>83 /reg=3</opc> - <opr>Ev Ib</opr> - <syn>sext</syn> + <opr>Ev sIb</opr> </def> </instruction> <instruction> <mnemonic>scasb</mnemonic> <def> + <pfx>repz</pfx> <opc>ae</opc> </def> </instruction> @@ -7215,7 +7583,7 @@ <instruction> <mnemonic>scasw</mnemonic> <def> - <pfx>oso rexw</pfx> + <pfx>repz oso rexw</pfx> <opc>af /o=16</opc> </def> </instruction> @@ -7223,7 +7591,7 @@ <instruction> <mnemonic>scasd</mnemonic> <def> - <pfx>oso rexw</pfx> + <pfx>repz oso rexw</pfx> <opc>af /o=32</opc> </def> </instruction> @@ -7231,7 +7599,7 @@ <instruction> <mnemonic>scasq</mnemonic> <def> - <pfx>oso rexw</pfx> + <pfx>repz oso rexw</pfx> <opc>af /o=64</opc> </def> </instruction> @@ -7264,7 +7632,7 @@ </instruction> <instruction> - <mnemonic>setnb</mnemonic> + <mnemonic>setae</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 93</opc> @@ -7448,9 +7816,10 @@ <instruction> <mnemonic>shufpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f c6</opc> - <opr>V W Ib</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f c6</opc> + <opr>V H W Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -7459,7 +7828,8 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f c6</opc> - <opr>V W Ib</opr> + <opr>V H W Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -7475,7 +7845,7 @@ <instruction> <mnemonic>sldt</mnemonic> <def> - <pfx>aso oso rexr rexx rexb</pfx> + <pfx>aso oso rexr rexw rexx rexb</pfx> <opc>0f 00 /reg=0</opc> <opr>MwRv</opr> </def> @@ -7484,18 +7854,24 @@ <instruction> <mnemonic>smsw</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso oso rexr rexw rexx rexb</pfx> <opc>0f 01 /reg=4 /mod=!11</opc> - <opr>M</opr> + <opr>MwRv</opr> + </def> + <def> + <pfx>aso oso rexr rexw rexx rexb</pfx> + <opc>0f 01 /reg=4 /mod=11</opc> + <opr>MwRv</opr> </def> </instruction> <instruction> <mnemonic>sqrtps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 51</opc> <opr>V W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -7503,8 +7879,9 @@ <mnemonic>sqrtpd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 51</opc> + <opc>/sse=66 0f 51</opc> <opr>V W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -7512,8 +7889,9 @@ <mnemonic>sqrtsd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 51</opc> - <opr>V W</opr> + <opc>/sse=f2 0f 51</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -7521,8 +7899,9 @@ <mnemonic>sqrtss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 51</opc> - <opr>V W</opr> + <opc>/sse=f3 0f 51</opc> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -7567,15 +7946,16 @@ <mnemonic>stmxcsr</mnemonic> <def> <pfx>aso rexw rexr rexx rexb</pfx> - <opc>0f ae /mod=11 /reg=3</opc> + <opc>0f ae /mod=!11 /reg=3</opc> <opr>Md</opr> + <cpuid>sse avx</cpuid> </def> </instruction> <instruction> <mnemonic>stosb</mnemonic> <def> - <pfx>seg</pfx> + <pfx>rep seg</pfx> <opc>aa</opc> </def> </instruction> @@ -7583,7 +7963,7 @@ <instruction> <mnemonic>stosw</mnemonic> <def> - <pfx>seg oso rexw</pfx> + <pfx>rep seg oso rexw</pfx> <opc>ab /o=16</opc> </def> </instruction> @@ -7591,7 +7971,7 @@ <instruction> <mnemonic>stosd</mnemonic> <def> - <pfx>seg oso rexw</pfx> + <pfx>rep seg oso rexw</pfx> <opc>ab /o=32</opc> </def> </instruction> @@ -7599,7 +7979,7 @@ <instruction> <mnemonic>stosq</mnemonic> <def> - <pfx>seg oso rexw</pfx> + <pfx>rep seg oso rexw</pfx> <opc>ab /o=64</opc> </def> </instruction> @@ -7607,9 +7987,9 @@ <instruction> <mnemonic>str</mnemonic> <def> - <pfx>aso oso rexr rexx rexb</pfx> + <pfx>aso oso rexr rexw rexx rexb</pfx> <opc>0f 00 /reg=1</opc> - <opr>Ev</opr> + <opr>MwRv</opr> </def> </instruction> @@ -7642,8 +8022,7 @@ <def> <pfx>oso rexw</pfx> <opc>2d</opc> - <opr>rAX Iz</opr> - <syn>sext</syn> + <opr>rAX sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -7653,38 +8032,38 @@ <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>81 /reg=5</opc> - <opr>Ev Iz</opr> - <syn>sext</syn> + <opr>Ev sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>82 /reg=5</opc> + <opc>82 /reg=5 /m=!64</opc> <opr>Eb Ib</opr> <mode>inv64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>83 /reg=5</opc> - <opr>Ev Ib</opr> - <syn>sext</syn> + <opr>Ev sIb</opr> </def> </instruction> <instruction> <mnemonic>subpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 5c</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 5c</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> <instruction> <mnemonic>subps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> + <pfx>aso rexr rexx rexb vexl</pfx> <opc>0f 5c</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -7692,8 +8071,9 @@ <mnemonic>subsd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 5c</opc> - <opr>V W</opr> + <opc>/sse=f2 0f 5c</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -7701,8 +8081,9 @@ <mnemonic>subss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 5c</opc> - <opr>V W</opr> + <opc>/sse=f3 0f 5c</opc> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -7723,15 +8104,22 @@ <instruction> <mnemonic>sysenter</mnemonic> <def> - <opc>0f 34</opc> - <mode>inv64</mode> + <opc>0f 34 /m=!64</opc> + </def> + <def> + <opc>0f 34 /m=64</opc> + <vendor>intel</vendor> </def> </instruction> <instruction> <mnemonic>sysexit</mnemonic> <def> - <opc>0f 35</opc> + <opc>0f 35 /m=!64</opc> + </def> + <def> + <opc>0f 35 /m=64</opc> + <vendor>intel</vendor> </def> </instruction> @@ -7766,8 +8154,7 @@ <def> <pfx>oso rexw</pfx> <opc>a9</opc> - <opr>rAX Iz</opr> - <syn>sext</syn> + <opr>rAX sIz</opr> </def> <def> <pfx>aso rexw rexr rexx rexb</pfx> @@ -7777,14 +8164,12 @@ <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>f7 /reg=0</opc> - <opr>Ev Iz</opr> - <syn>sext</syn> + <opr>Ev sIz</opr> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>f7 /reg=1</opc> <opr>Ev Iz</opr> - <syn>sext</syn> </def> </instruction> @@ -7792,8 +8177,9 @@ <mnemonic>ucomisd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 2e</opc> + <opc>/sse=66 0f 2e</opc> <opr>V W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -7803,6 +8189,7 @@ <pfx>aso rexr rexx rexb</pfx> <opc>0f 2e</opc> <opr>V W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -7816,9 +8203,10 @@ <instruction> <mnemonic>unpckhpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 15</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 15</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -7827,7 +8215,8 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 15</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> @@ -7836,16 +8225,18 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 14</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse avx</cpuid> </def> </instruction> <instruction> <mnemonic>unpcklpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 14</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 14</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -7876,11 +8267,21 @@ </instruction> <instruction> + <mnemonic>rdrand</mnemonic> + <def> + <pfx>oso rexr rexw rexx rexb</pfx> + <opc>0f c7 /mod=11 /reg=6</opc> + <opr>R</opr> + </def> + <cpuid>rdrand</cpuid> + </instruction> + + <instruction> <mnemonic>vmclear</mnemonic> <vendor>intel</vendor> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f c7 /reg=6</opc> + <opc>/sse=66 0f c7 /mod=!11 /reg=6</opc> <opr>Mq</opr> </def> </instruction> @@ -7890,7 +8291,7 @@ <vendor>intel</vendor> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f c7 /reg=6</opc> + <opc>/sse=f3 0f c7 /mod=!11 /reg=6</opc> <opr>Mq</opr> </def> </instruction> @@ -7900,7 +8301,7 @@ <vendor>intel</vendor> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>0f c7 /reg=6</opc> + <opc>0f c7 /mod=!11 /reg=6</opc> <opr>Mq</opr> </def> </instruction> @@ -7910,7 +8311,7 @@ <vendor>intel</vendor> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>0f c7 /reg=7</opc> + <opc>0f c7 /mod=!11 /reg=7</opc> <opr>Mq</opr> </def> </instruction> @@ -7944,20 +8345,8 @@ <vendor>intel</vendor> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>0f 78 /m=16</opc> - <opr>Ed Gd</opr> - <mode>def64</mode> - </def> - <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>0f 78 /m=32</opc> - <opr>Ed Gd</opr> - <mode>def64</mode> - </def> - <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>0f 78 /m=64</opc> - <opr>Eq Gq</opr> + <opc>0f 78</opc> + <opr>Ey Gy</opr> <mode>def64</mode> </def> </instruction> @@ -7967,20 +8356,8 @@ <vendor>intel</vendor> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>0f 79 /m=16</opc> - <opr>Gd Ed</opr> - <mode>def64</mode> - </def> - <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>0f 79 /m=32</opc> - <opr>Gd Ed</opr> - <mode>def64</mode> - </def> - <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>0f 79 /m=64</opc> - <opr>Gq Eq</opr> + <opc>0f 79</opc> + <opr>Gy Ey</opr> <mode>def64</mode> </def> </instruction> @@ -8067,49 +8444,56 @@ <def> <pfx>oso rexw rexb</pfx> <opc>90</opc> - <opr>rAXr8 rAX</opr> + <opr>R0v rAX</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>91</opc> - <opr>rCXr9 rAX</opr> + <opr>R1v rAX</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>92</opc> - <opr>rDXr10 rAX</opr> + <opr>R2v rAX</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>93</opc> - <opr>rBXr11 rAX</opr> + <opr>R3v rAX</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>94</opc> - <opr>rSPr12 rAX</opr> + <opr>R4v rAX</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>95</opc> - <opr>rBPr13 rAX</opr> + <opr>R5v rAX</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>96</opc> - <opr>rSIr14 rAX</opr> + <opr>R6v rAX</opr> </def> <def> <pfx>oso rexw rexb</pfx> <opc>97</opc> - <opr>rDIr15 rAX</opr> + <opr>R7v rAX</opr> </def> </instruction> <instruction> + <mnemonic>xgetbv</mnemonic> + <def> + <opc>0f 01 /mod=11 /reg=2 /rm=0</opc> + </def> + </instruction> + + <instruction> <mnemonic>xlatb</mnemonic> <def> - <pfx>rexw</pfx> + <pfx>rexw seg</pfx> <opc>d7</opc> </def> </instruction> @@ -8143,8 +8527,7 @@ <def> <pfx>oso rexw</pfx> <opc>35</opc> - <opr>rAX Iz</opr> - <syn>sext</syn> + <opr>rAX sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -8154,29 +8537,28 @@ <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>81 /reg=6</opc> - <opr>Ev Iz</opr> - <syn>sext</syn> + <opr>Ev sIz</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>82 /reg=6</opc> + <opc>82 /reg=6 /m=!64</opc> <opr>Eb Ib</opr> <mode>inv64</mode> </def> <def> <pfx>aso oso rexw rexr rexx rexb</pfx> <opc>83 /reg=6</opc> - <opr>Ev Ib</opr> - <syn>sext</syn> + <opr>Ev sIb</opr> </def> </instruction> <instruction> <mnemonic>xorpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 57</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 57</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -8185,7 +8567,8 @@ <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 57</opc> - <opr>V W</opr> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -8225,6 +8608,31 @@ </instruction> <instruction> + <mnemonic>xrstor</mnemonic> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>0f ae /reg=5 /mod=!11</opc> + <opr>M</opr> + </def> + </instruction> + + <instruction> + <mnemonic>xsave</mnemonic> + <def> + <pfx>aso rexw rexr rexx rexb</pfx> + <opc>0f ae /reg=4 /mod=!11</opc> + <opr>M</opr> + </def> + </instruction> + + <instruction> + <mnemonic>xsetbv</mnemonic> + <def> + <opc>0f 01 /mod=11 /reg=2 /rm=1</opc> + </def> + </instruction> + + <instruction> <mnemonic>xsha1</mnemonic> <def> <opc>0f a6 /mod=11 /rm=0 /reg=1</opc> @@ -8246,7 +8654,25 @@ </instruction> <instruction> - <mnemonic>db</mnemonic> + <mnemonic>pclmulqdq</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f 3a 44</opc> + <opr>V H W Ib</opr> + <cpuid>aesni avx</cpuid> + </def> + </instruction> + + <!-- + SMX + --> + + <instruction> + <mnemonic>getsec</mnemonic> + <cpuid>smx</cpuid> + <def> + <opc>0f 37</opc> + </def> </instruction> <!-- @@ -8256,46 +8682,58 @@ <instruction> <mnemonic>movdqa</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 7f</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 7f</opc> <opr>W V</opr> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 6f</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 6f</opc> <opr>V W</opr> </def> + <cpuid>sse2 avx</cpuid> + </instruction> + + <instruction> + <mnemonic>maskmovdqu</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f f7 /mod=11</opc> + <opr>V U</opr> + <cpuid>sse2 avx</cpuid> + </def> </instruction> <instruction> <mnemonic>movdq2q</mnemonic> <def> <pfx>aso rexb</pfx> - <opc>ssef2 0f d6</opc> - <opr>P VR</opr> + <opc>/sse=f2 0f d6</opc> + <opr>P U</opr> </def> </instruction> <instruction> <mnemonic>movdqu</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 6f</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f3 0f 6f</opc> <opr>V W</opr> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 7f</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f3 0f 7f</opc> <opr>W V</opr> </def> + <cpuid>sse2 avx</cpuid> </instruction> <instruction> <mnemonic>movq2dq</mnemonic> <def> - <pfx>aso</pfx> - <opc>ssef3 0f d6</opc> - <opr>V PR</opr> + <pfx>aso rexr</pfx> + <opc>/sse=f3 0f d6</opc> + <opr>V N</opr> </def> </instruction> @@ -8308,8 +8746,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f d4</opc> - <opr>V W</opr> + <opc>/sse=66 0f d4</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -8317,8 +8756,9 @@ <mnemonic>psubq</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f fb</opc> - <opr>V W</opr> + <opc>/sse=66 0f fb</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> <def> <pfx>aso rexr rexx rexb</pfx> @@ -8336,7 +8776,7 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f f4</opc> + <opc>/sse=66 0f f4</opc> <opr>V W</opr> </def> </instruction> @@ -8345,8 +8785,9 @@ <mnemonic>pshufhw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 70</opc> + <opc>/sse=f3 0f 70</opc> <opr>V W Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -8354,8 +8795,9 @@ <mnemonic>pshuflw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 70</opc> + <opc>/sse=f2 0f 70</opc> <opr>V W Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -8363,8 +8805,9 @@ <mnemonic>pshufd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 70</opc> + <opc>/sse=66 0f 70</opc> <opr>V W Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -8372,8 +8815,9 @@ <mnemonic>pslldq</mnemonic> <def> <pfx>rexb</pfx> - <opc>sse66 0f 73 /reg=7</opc> - <opr>VR Ib</opr> + <opc>/sse=66 0f 73 /reg=7</opc> + <opr>H U Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -8381,8 +8825,9 @@ <mnemonic>psrldq</mnemonic> <def> <pfx>rexb</pfx> - <opc>sse66 0f 73 /reg=3</opc> - <opr>VR Ib</opr> + <opc>/sse=66 0f 73 /reg=3</opc> + <opr>H U Ib</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -8390,8 +8835,9 @@ <mnemonic>punpckhqdq</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 6d</opc> - <opr>V W</opr> + <opc>/sse=66 0f 6d</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> @@ -8399,66 +8845,69 @@ <mnemonic>punpcklqdq</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 6c</opc> - <opr>V W</opr> + <opc>/sse=66 0f 6c</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> </def> </instruction> - <!-- - SSE 3 - --> - <instruction> - <mnemonic>addsubpd</mnemonic> + <mnemonic>haddpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f d0</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 7c</opc> + <opr>V H W</opr> + <cpuid>sse3 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>addsubps</mnemonic> + <mnemonic>haddps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f d0</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f2 0f 7c</opc> + <opr>V H W</opr> + <cpuid>sse3 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>haddpd</mnemonic> + <mnemonic>hsubpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 7c</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 7d</opc> + <opr>V H W</opr> + <cpuid>sse3 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>haddps</mnemonic> + <mnemonic>hsubps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 7c</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f2 0f 7d</opc> + <opr>V H W</opr> + <cpuid>sse3 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>hsubpd</mnemonic> + <mnemonic>insertps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 7d</opc> - <opr>V W</opr> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 3a 21</opc> + <opr>V H Md Ib</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>hsubps</mnemonic> + <mnemonic>lddqu</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 7d</opc> - <opr>V W</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f2 0f f0</opc> + <opr>V M</opr> + <cpuid>sse3 avx</cpuid> </def> </instruction> @@ -8466,41 +8915,46 @@ <mnemonic>movddup</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 12 /mod=11</opc> + <opc>/sse=f2 0f 12 /mod=11</opc> <opr>V W</opr> </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>ssef2 0f 12 /mod=!11</opc> + <opc>/sse=f2 0f 12 /mod=!11</opc> <opr>V W</opr> </def> + <cpuid>sse3 avx</cpuid> </instruction> <instruction> <mnemonic>movshdup</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 16 /mod=11</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f3 0f 16 /mod=11</opc> <opr>V W</opr> + <cpuid>sse3 avx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 16 /mod=!11</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f3 0f 16 /mod=!11</opc> <opr>V W</opr> + <cpuid>sse3 avx</cpuid> </def> </instruction> <instruction> <mnemonic>movsldup</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 12 /mod=11</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f3 0f 12 /mod=11</opc> <opr>V W</opr> + <cpuid>sse3 avx</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>ssef3 0f 12 /mod=!11</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=f3 0f 12 /mod=!11</opc> <opr>V W</opr> + <cpuid>sse3 avx</cpuid> </def> </instruction> @@ -8514,11 +8968,13 @@ <pfx>aso rexr rexx rexb</pfx> <opc>0f 38 1c</opc> <opr>P Q</opr> + <cpuid>ssse3</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 1c</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 38 1c</opc> <opr>V W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8528,11 +8984,13 @@ <pfx>aso rexr rexx rexb</pfx> <opc>0f 38 1d</opc> <opr>P Q</opr> + <cpuid>ssse3</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 1d</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 38 1d</opc> <opr>V W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8542,16 +9000,18 @@ <pfx>aso rexr rexx rexb</pfx> <opc>0f 38 1e</opc> <opr>P Q</opr> + <cpuid>ssse3</cpuid> </def> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 1e</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 38 1e</opc> <opr>V W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>psignb</mnemonic> + <mnemonic>pshufb</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> <opc>0f 38 00</opc> @@ -8559,8 +9019,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 00</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 00</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8573,8 +9034,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 01</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 01</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8587,8 +9049,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 02</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 02</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8601,8 +9064,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 03</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 03</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8615,8 +9079,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 04</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 04</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8629,8 +9094,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 05</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 05</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8643,8 +9109,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 06</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 06</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8657,8 +9124,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 07</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 07</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8671,8 +9139,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 08</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 08</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8685,8 +9154,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 0a</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 0a</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8699,8 +9169,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 09</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 09</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8713,8 +9184,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 0b</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 0b</opc> + <opr>V H W</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8727,8 +9199,9 @@ </def> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 0f</opc> - <opr>V W Ib</opr> + <opc>/sse=66 0f 3a 0f</opc> + <opr>V H W Ib</opr> + <cpuid>ssse3 avx</cpuid> </def> </instruction> @@ -8740,8 +9213,9 @@ <mnemonic>pblendvb</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 10</opc> + <opc>/sse=66 0f 38 10</opc> <opr>V W</opr> + <cpuid>sse4.1</cpuid> </def> </instruction> @@ -8749,8 +9223,9 @@ <mnemonic>pmuldq</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 28</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 28</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8758,8 +9233,9 @@ <mnemonic>pminsb</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 38</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 38</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8767,8 +9243,9 @@ <mnemonic>pminsd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 39</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 39</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8776,8 +9253,9 @@ <mnemonic>pminuw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 3a</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 3a</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8785,8 +9263,9 @@ <mnemonic>pminud</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 3b</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 3b</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8794,8 +9273,9 @@ <mnemonic>pmaxsb</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 3c</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 3c</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8803,8 +9283,9 @@ <mnemonic>pmaxsd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 3d</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 3d</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8812,8 +9293,19 @@ <mnemonic>pmaxud</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 3f</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 3f</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmaxuw</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/sse=66 0f 38 3e</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8821,8 +9313,9 @@ <mnemonic>pmulld</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 40</opc> - <opr>V W</opr> + <opc>/sse=66 0f 38 40</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8830,26 +9323,29 @@ <mnemonic>phminposuw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 41</opc> + <opc>/sse=66 0f 38 41</opc> <opr>V W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> <instruction> <mnemonic>roundps</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 08</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 3a 08</opc> <opr>V W Ib</opr> + <cpuid>sse avx</cpuid> </def> </instruction> <instruction> <mnemonic>roundpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 09</opc> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 3a 09</opc> <opr>V W Ib</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8857,8 +9353,9 @@ <mnemonic>roundss</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 0a</opc> - <opr>V W Ib</opr> + <opc>/sse=66 0f 3a 0a</opc> + <opr>V H W Ib</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> @@ -8866,89 +9363,448 @@ <mnemonic>roundsd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 0b</opc> - <opr>V W Ib</opr> + <opc>/sse=66 0f 3a 0b</opc> + <opr>V H W Ib</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> <instruction> <mnemonic>blendpd</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 0d</opc> - <opr>V W Ib</opr> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 3a 0d</opc> + <opr>V H W Ib</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>pblendw</mnemonic> + <mnemonic>blendps</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 0e</opc> - <opr>V W Ib</opr> + <opc>/sse=66 0f 3a 0c</opc> + <opr>V H W Ib</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>blendps</mnemonic> + <mnemonic>blendvpd</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 0c</opc> - <opr>V W Ib</opr> + <opc>/sse=66 0f 38 15</opc> + <opr>V W</opr> + <cpuid>sse4.1</cpuid> </def> </instruction> <instruction> - <mnemonic>blendvpd</mnemonic> + <mnemonic>blendvps</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 15</opc> + <opc>/sse=66 0f 38 14</opc> <opr>V W</opr> + <cpuid>sse4.1</cpuid> </def> </instruction> <instruction> - <mnemonic>blendvps</mnemonic> + <mnemonic>bound</mnemonic> + <def> + <pfx>aso oso</pfx> + <opc>62 /m=!64</opc> + <opr>Gv M</opr> + </def> + </instruction> + + <instruction> + <mnemonic>bsf</mnemonic> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>0f bc</opc> + <opr>Gv Ev</opr> + </def> + </instruction> + + <instruction> + <mnemonic>bsr</mnemonic> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>0f bd</opc> + <opr>Gv Ev</opr> + </def> + </instruction> + + <instruction> + <mnemonic>bswap</mnemonic> + <def> + <pfx>oso rexw rexb</pfx> + <opc>0f c8</opc> + <opr>R0y</opr> + </def> + <def> + <pfx>oso rexw rexb</pfx> + <opc>0f c9</opc> + <opr>R1y</opr> + </def> + <def> + <pfx>oso rexw rexb</pfx> + <opc>0f ca</opc> + <opr>R2y</opr> + </def> + <def> + <pfx>oso rexw rexb</pfx> + <opc>0f cb</opc> + <opr>R3y</opr> + </def> + <def> + <pfx>oso rexw rexb</pfx> + <opc>0f cc</opc> + <opr>R4y</opr> + </def> + <def> + <pfx>oso rexw rexb</pfx> + <opc>0f cd</opc> + <opr>R5y</opr> + </def> + <def> + <pfx>oso rexw rexb</pfx> + <opc>0f ce</opc> + <opr>R6y</opr> + </def> + <def> + <pfx>oso rexw rexb</pfx> + <opc>0f cf</opc> + <opr>R7y</opr> + </def> + </instruction> + + <instruction> + <mnemonic>bt</mnemonic> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>0f ba /reg=4</opc> + <opr>Ev Ib</opr> + </def> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>0f a3</opc> + <opr>Ev Gv</opr> + </def> + </instruction> + + <instruction> + <mnemonic>btc</mnemonic> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>0f bb</opc> + <opr>Ev Gv</opr> + </def> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>0f ba /reg=7</opc> + <opr>Ev Ib</opr> + </def> + </instruction> + + <instruction> + <mnemonic>btr</mnemonic> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>0f b3</opc> + <opr>Ev Gv</opr> + </def> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>0f ba /reg=6</opc> + <opr>Ev Ib</opr> + </def> + </instruction> + + <instruction> + <mnemonic>bts</mnemonic> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>0f ab</opc> + <opr>Ev Gv</opr> + </def> + <def> + <pfx>aso oso rexw rexr rexx rexb</pfx> + <opc>0f ba /reg=5</opc> + <opr>Ev Ib</opr> + </def> + </instruction> + + <instruction> + <mnemonic>pblendw</mnemonic> <def> <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 38 14</opc> + <opc>/sse=66 0f 3a 0e</opc> + <opr>V H W Ib</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>mpsadbw</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/sse=66 0f 3a 42</opc> + <opr>V H W Ib</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>movntdqa</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb vexl</pfx> + <opc>/sse=66 0f 38 2a</opc> + <opr>V M</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>packusdw</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb vexl</pfx> + <opc>/sse=66 0f 38 2b</opc> + <opr>V H W</opr> + <cpuid>sse2 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovsxbw</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 20</opc> + <opr>V MqU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovsxbd</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 21</opc> + <opr>V MdU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovsxbq</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 22</opc> + <opr>V MwU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovsxwd</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 23</opc> + <opr>V MqU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovsxwq</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 24</opc> + <opr>V MdU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovsxdq</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 25</opc> + <opr>V MqU</opr> + <cpuid>sse4.1</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovzxbw</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 30</opc> + <opr>V MqU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovzxbd</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 31</opc> + <opr>V MdU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovzxbq</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 32</opc> + <opr>V MwU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovzxwd</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 33</opc> + <opr>V MqU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovzxwq</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 34</opc> + <opr>V MdU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pmovzxdq</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 35</opc> + <opr>V MqU</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pcmpeqq</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 29</opc> + <opr>V H W</opr> + <cpuid>sse4.1 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>popcnt</mnemonic> + <def> + <pfx>aso oso rexr rexw rexx rexb</pfx> + <opc>/sse=f3 0f b8</opc> + <opr>Gv Ev</opr> + </def> + <cpuid>sse4.2</cpuid> + </instruction> + + <instruction> + <mnemonic>ptest</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb vexl</pfx> + <opc>/sse=66 0f 38 17</opc> <opr>V W</opr> + <cpuid>sse4.1 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>dpps</mnemonic> + <mnemonic>pcmpestri</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 40</opc> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 3a 61</opc> <opr>V W Ib</opr> + <cpuid>sse4.2 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>dppd</mnemonic> + <mnemonic>pcmpestrm</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 41</opc> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 3a 60</opc> <opr>V W Ib</opr> + <cpuid>sse4.2 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>mpsadbw</mnemonic> + <mnemonic>pcmpgtq</mnemonic> <def> - <pfx>aso rexr rexx rexb</pfx> - <opc>sse66 0f 3a 42</opc> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 38 37</opc> + <opr>V H W</opr> + <cpuid>sse4.2 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>pcmpistri</mnemonic> + <def> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 3a 63</opc> <opr>V W Ib</opr> + <cpuid>sse4.2 avx</cpuid> </def> </instruction> <instruction> - <mnemonic>extractps</mnemonic> + <mnemonic>pcmpistrm</mnemonic> <def> - <pfx>aso rexr rexw rexb</pfx> - <opc>sse66 0f 3a 17</opc> - <opr>MdRy V Ib</opr> + <pfx>aso rexr rexw rexx rexb</pfx> + <opc>/sse=66 0f 3a 62</opc> + <opr>V W Ib</opr> + <cpuid>sse4.2 avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>movbe</mnemonic> + <def> + <pfx>aso oso rexr rexw rexx rexb</pfx> + <opc>0f 38 f0</opc> + <opr>Gv Mv</opr> + <cpuid>sse3 atom</cpuid> + </def> + <def> + <pfx>aso oso rexr rexw rexx rexb</pfx> + <opc>0f 38 f1</opc> + <opr>Mv Gv</opr> + <cpuid>sse3 atom</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>crc32</mnemonic> + <def> + <pfx>aso oso rexr rexw rexx rexb</pfx> + <opc>/sse=f2 0f 38 f0</opc> + <opr>Gy Eb</opr> + <cpuid>sse4.2</cpuid> + </def> + <def> + <pfx>aso oso rexr rexw rexx rexb</pfx> + <opc>/sse=f2 0f 38 f1</opc> + <opr>Gy Ev</opr> + <cpuid>sse4.2</cpuid> </def> </instruction> @@ -8956,4 +9812,288 @@ <mnemonic>invalid</mnemonic> </instruction> + <instruction> + <mnemonic>vbroadcastss</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f38 18 /vexw=0</opc> + <opr>V Md</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vbroadcastsd</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f38 19 /vexw=0 /vexl=1</opc> + <opr>Vqq Mq</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vextractf128</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f3a 19 /vexw=0 /vexl=1</opc> + <opr>Wdq Vqq Ib</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vinsertf128</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f3a 18 /vexw=0 /vexl=1</opc> + <opr>Vqq Hqq Wdq Ib</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vmaskmovps</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f38 2c /vexw=0</opc> + <opr>V H M</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f38 2e /vexw=0</opc> + <opr>M H V</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vmaskmovpd</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f38 2d /vexw=0</opc> + <opr>V H M</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f38 2f /vexw=0</opc> + <opr>M H V</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vpermilpd</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f38 0d /vexw=0</opc> + <opr>Vx Hx Wx</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f3a 05 /vexw=0</opc> + <opr>V W Ib</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vpermilps</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f38 0c /vexw=0</opc> + <opr>Vx Hx Wx</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f3a 04 /vexw=0</opc> + <opr>Vx Wx Ib</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vperm2f128</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f3a 06 /vexw=0 /vexl=1</opc> + <opr>Vqq Hqq Wqq Ib</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vtestps</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f38 0e /vexw=0</opc> + <opr>Vx Wx</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vtestpd</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f38 0f /vexw=0</opc> + <opr>Vx Wx</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vzeroupper</mnemonic> + <def> + <opc>/vex=0f 77 /vexl=0</opc> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vzeroall</mnemonic> + <def> + <opc>/vex=0f 77 /vexl=1</opc> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vblendvpd</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f3a 4b /vexw=0</opc> + <opr>Vx Hx Wx Lx</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vblendvps</mnemonic> + <def> + <pfx>aso rexr rexx rexb vexl</pfx> + <opc>/vex=66_0f3a 4a /vexw=0</opc> + <opr>Vx Hx Wx Lx</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vmovsd</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=f2_0f 10 /mod=11</opc> + <opr>V H U</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=f2_0f 10 /mod=!11</opc> + <opr>V Mq</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=f2_0f 11 /mod=11</opc> + <opr>U H V</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=f2_0f 11 /mod=!11</opc> + <opr>Mq V</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vmovss</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=f3_0f 10 /mod=11</opc> + <opr>V H U</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=f3_0f 10 /mod=!11</opc> + <opr>V Md</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=f3_0f 11 /mod=11</opc> + <opr>U H V</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=f3_0f 11 /mod=!11</opc> + <opr>Md V</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vpblendvb</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=66_0f3a 4c /vexw=0</opc> + <opr>V H W L</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vpsllw</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=66_0f f1 /vexl=0</opc> + <opr>V H W</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=66_0f 71 /reg=6 /vexl=0</opc> + <opr>H V W</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vpslld</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=66_0f f2 /vexl=0</opc> + <opr>V H W</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=66_0f 72 /reg=6 /vexl=0</opc> + <opr>H V W</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + + <instruction> + <mnemonic>vpsllq</mnemonic> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=66_0f f3 /vexl=0</opc> + <opr>V H W</opr> + <cpuid>avx</cpuid> + </def> + <def> + <pfx>aso rexr rexx rexb</pfx> + <opc>/vex=66_0f 73 /reg=6 /vexl=0</opc> + <opr>H V W</opr> + <cpuid>avx</cpuid> + </def> + </instruction> + </x86optable> |