summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/disassembler/udis86/optable.xml
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/disassembler/udis86/optable.xml')
-rw-r--r--Source/JavaScriptCore/disassembler/udis86/optable.xml3344
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>