diff options
author | Hu, Lin1 <lin1.hu@intel.com> | 2024-04-09 10:58:39 +0800 |
---|---|---|
committer | Cui, Lili <lili.cui@intel.com> | 2024-04-09 11:18:23 +0800 |
commit | edb30f5782826af431e26aac4362cca687e77913 (patch) | |
tree | 6544416cf4e838a359e57e43458eda8f404939e2 | |
parent | 7c71e67e119eb36f62803797640b7638bac6d5e8 (diff) | |
download | gdb-edb30f5782826af431e26aac4362cca687e77913.zip gdb-edb30f5782826af431e26aac4362cca687e77913.tar.gz gdb-edb30f5782826af431e26aac4362cca687e77913.tar.bz2 |
Support {evex} pseudo prefix for decode evex promoted insns without egpr32.
This patch is based on APX NF patch and also adds test cases for Checking 64-bit insns not sizeable through
register operands with evex.
gas/ChangeLog:
* testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d: Added no-egpr testcases for movbe.
* testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d: Ditto.
* testsuite/gas/i386/x86-64-apx-evex-promoted.d: Ditto.
* testsuite/gas/i386/x86-64-apx-evex-promoted.s: Ditto.
* testsuite/gas/i386/x86-64.exp: Added tests.
* testsuite/gas/i386/noreg64-evex.d: New test.
* testsuite/gas/i386/noreg64-evex.e: Ditto.
* testsuite/gas/i386/noreg64-evex.s: Ditto.
* testsuite/gas/i386/x86-64-apx_f-evex.d: Ditto.
* testsuite/gas/i386/x86-64-apx_f-evex.s: Ditto.
opcodes/ChangeLog:
* i386-dis-evex.h: Added %ME to movbe.
* i386-dis.c : Added %XE to evex_from_vex instructions to output {evex}.
(struct dis386): New %ME.
(putop): Handle %ME and output {evex} for evex_from_legacy instructions.
* Return early when the instruction name is (bad).
-rw-r--r-- | gas/testsuite/gas/i386/noreg64-evex.d | 73 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/noreg64-evex.e | 64 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/noreg64-evex.s | 66 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-apx_f-evex.d | 606 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-apx_f-evex.s | 603 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64.exp | 2 | ||||
-rw-r--r-- | opcodes/i386-dis-evex.h | 4 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 112 |
12 files changed, 1500 insertions, 42 deletions
diff --git a/gas/testsuite/gas/i386/noreg64-evex.d b/gas/testsuite/gas/i386/noreg64-evex.d new file mode 100644 index 0000000..cef2995 --- /dev/null +++ b/gas/testsuite/gas/i386/noreg64-evex.d @@ -0,0 +1,73 @@ +#objdump: -dw +#name: 64-bit insns not sizeable through register operands evex +#source: noreg64-evex.s +#warning_output: noreg64-evex.e + +.*: +file format .* + +Disassembly of section \.text: + +0+ <_start>: +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 83 10 01[ ]+\{evex\} adcl \$0x1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 10 89 00 00 00[ ]+\{evex\} adcl \$0x89,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 10 34 12 00 00[ ]+\{evex\} adcl \$0x1234,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 10 78 56 34 12[ ]+\{evex\} adcl \$0x12345678,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 83 00 01[ ]+\{evex\} addl \$0x1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 00 89 00 00 00[ ]+\{evex\} addl \$0x89,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 00 34 12 00 00[ ]+\{evex\} addl \$0x1234,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 00 78 56 34 12[ ]+\{evex\} addl \$0x12345678,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 83 20 01[ ]+\{evex\} andl \$0x1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 20 89 00 00 00[ ]+\{evex\} andl \$0x89,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 20 34 12 00 00[ ]+\{evex\} andl \$0x1234,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 20 78 56 34 12[ ]+\{evex\} andl \$0x12345678,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 f1 00[ ]+\{evex\} crc32l \(%rax\),%eax +[ ]*[a-f0-9]+:[ ]*62 f4 fc 08 f1 00[ ]+\{evex\} crc32q \(%rax\),%rax +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 ff 08[ ]+\{evex\} decl \(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 f7 30[ ]+\{evex\} divl \(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 f7 38[ ]+\{evex\} idivl \(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 f7 28[ ]+\{evex\} imull \(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 ff 00[ ]+\{evex\} incl \(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 f7 20[ ]+\{evex\} mull \(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 f7 18[ ]+\{evex\} negl \(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 f7 10[ ]+\{evex\} notl \(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 83 08 01[ ]+\{evex\} orl \$0x1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 08 89 00 00 00[ ]+\{evex\} orl \$0x89,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 08 34 12 00 00[ ]+\{evex\} orl \$0x1234,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 08 78 56 34 12[ ]+\{evex\} orl \$0x12345678,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d1 10[ ]+\{evex\} rcll \$1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 c1 10 02[ ]+\{evex\} rcll \$0x2,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d3 10[ ]+\{evex\} rcll %cl,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d1 18[ ]+\{evex\} rcrl \$1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 c1 18 02[ ]+\{evex\} rcrl \$0x2,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d3 18[ ]+\{evex\} rcrl %cl,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d1 00[ ]+\{evex\} roll \$1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 c1 00 02[ ]+\{evex\} roll \$0x2,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d3 00[ ]+\{evex\} roll %cl,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d1 08[ ]+\{evex\} rorl \$1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 c1 08 02[ ]+\{evex\} rorl \$0x2,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d3 08[ ]+\{evex\} rorl %cl,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d1 20[ ]+\{evex\} shll \$1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 c1 20 02[ ]+\{evex\} shll \$0x2,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d3 20[ ]+\{evex\} shll %cl,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d1 38[ ]+\{evex\} sarl \$1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 c1 38 02[ ]+\{evex\} sarl \$0x2,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d3 38[ ]+\{evex\} sarl %cl,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 83 18 01[ ]+\{evex\} sbbl \$0x1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 18 89 00 00 00[ ]+\{evex\} sbbl \$0x89,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 18 34 12 00 00[ ]+\{evex\} sbbl \$0x1234,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 18 78 56 34 12[ ]+\{evex\} sbbl \$0x12345678,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d1 20[ ]+\{evex\} shll \$1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 c1 20 02[ ]+\{evex\} shll \$0x2,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d3 20[ ]+\{evex\} shll %cl,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d1 28[ ]+\{evex\} shrl \$1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 c1 28 02[ ]+\{evex\} shrl \$0x2,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 d3 28[ ]+\{evex\} shrl %cl,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 83 28 01[ ]+\{evex\} subl \$0x1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 28 89 00 00 00[ ]+\{evex\} subl \$0x89,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 28 34 12 00 00[ ]+\{evex\} subl \$0x1234,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 28 78 56 34 12[ ]+\{evex\} subl \$0x12345678,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 83 30 01[ ]+\{evex\} xorl \$0x1,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 30 89 00 00 00[ ]+\{evex\} xorl \$0x89,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 30 34 12 00 00[ ]+\{evex\} xorl \$0x1234,\(%rax\) +[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 30 78 56 34 12[ ]+\{evex\} xorl \$0x12345678,\(%rax\) +#pass diff --git a/gas/testsuite/gas/i386/noreg64-evex.e b/gas/testsuite/gas/i386/noreg64-evex.e new file mode 100644 index 0000000..b8ae1ef --- /dev/null +++ b/gas/testsuite/gas/i386/noreg64-evex.e @@ -0,0 +1,64 @@ +.*: Assembler messages: +.*:[0-9]+: Warning:.*`adc' +.*:[0-9]+: Warning:.*`adc' +.*:[0-9]+: Warning:.*`adc' +.*:[0-9]+: Warning:.*`adc' +.*:[0-9]+: Warning:.*`add' +.*:[0-9]+: Warning:.*`add' +.*:[0-9]+: Warning:.*`add' +.*:[0-9]+: Warning:.*`add' +.*:[0-9]+: Warning:.*`and' +.*:[0-9]+: Warning:.*`and' +.*:[0-9]+: Warning:.*`and' +.*:[0-9]+: Warning:.*`and' +.*:[0-9]+: Warning:.*`crc32' +.*:[0-9]+: Warning:.*`crc32' +.*:[0-9]+: Warning:.*`dec' +.*:[0-9]+: Warning:.*`div' +.*:[0-9]+: Warning:.*`idiv' +.*:[0-9]+: Warning:.*`imul' +.*:[0-9]+: Warning:.*`inc' +.*:[0-9]+: Warning:.*`mul' +.*:[0-9]+: Warning:.*`neg' +.*:[0-9]+: Warning:.*`not' +.*:[0-9]+: Warning:.*`or' +.*:[0-9]+: Warning:.*`or' +.*:[0-9]+: Warning:.*`or' +.*:[0-9]+: Warning:.*`or' +.*:[0-9]+: Warning:.*`rcl' +.*:[0-9]+: Warning:.*`rcl' +.*:[0-9]+: Warning:.*`rcl' +.*:[0-9]+: Warning:.*`rcr' +.*:[0-9]+: Warning:.*`rcr' +.*:[0-9]+: Warning:.*`rcr' +.*:[0-9]+: Warning:.*`rol' +.*:[0-9]+: Warning:.*`rol' +.*:[0-9]+: Warning:.*`rol' +.*:[0-9]+: Warning:.*`ror' +.*:[0-9]+: Warning:.*`ror' +.*:[0-9]+: Warning:.*`ror' +.*:[0-9]+: Warning:.*`sal' +.*:[0-9]+: Warning:.*`sal' +.*:[0-9]+: Warning:.*`sal' +.*:[0-9]+: Warning:.*`sar' +.*:[0-9]+: Warning:.*`sar' +.*:[0-9]+: Warning:.*`sar' +.*:[0-9]+: Warning:.*`sbb' +.*:[0-9]+: Warning:.*`sbb' +.*:[0-9]+: Warning:.*`sbb' +.*:[0-9]+: Warning:.*`sbb' +.*:[0-9]+: Warning:.*`shl' +.*:[0-9]+: Warning:.*`shl' +.*:[0-9]+: Warning:.*`shl' +.*:[0-9]+: Warning:.*`shr' +.*:[0-9]+: Warning:.*`shr' +.*:[0-9]+: Warning:.*`shr' +.*:[0-9]+: Warning:.*`sub' +.*:[0-9]+: Warning:.*`sub' +.*:[0-9]+: Warning:.*`sub' +.*:[0-9]+: Warning:.*`sub' +.*:[0-9]+: Warning:.*`xor' +.*:[0-9]+: Warning:.*`xor' +.*:[0-9]+: Warning:.*`xor' +.*:[0-9]+: Warning:.*`xor' +#pass diff --git a/gas/testsuite/gas/i386/noreg64-evex.s b/gas/testsuite/gas/i386/noreg64-evex.s new file mode 100644 index 0000000..2924900 --- /dev/null +++ b/gas/testsuite/gas/i386/noreg64-evex.s @@ -0,0 +1,66 @@ +# Check 64-bit insns not sizeable through register operands with evex + + .text +_start: + {evex} adc $1, (%rax) + {evex} adc $0x89, (%rax) + {evex} adc $0x1234, (%rax) + {evex} adc $0x12345678, (%rax) + {evex} add $1, (%rax) + {evex} add $0x89, (%rax) + {evex} add $0x1234, (%rax) + {evex} add $0x12345678, (%rax) + {evex} and $1, (%rax) + {evex} and $0x89, (%rax) + {evex} and $0x1234, (%rax) + {evex} and $0x12345678, (%rax) + {evex} crc32 (%rax), %eax + {evex} crc32 (%rax), %rax + {evex} dec (%rax) + {evex} div (%rax) + {evex} idiv (%rax) + {evex} imul (%rax) + {evex} inc (%rax) + {evex} mul (%rax) + {evex} neg (%rax) + {evex} not (%rax) + {evex} or $1, (%rax) + {evex} or $0x89, (%rax) + {evex} or $0x1234, (%rax) + {evex} or $0x12345678, (%rax) + {evex} rcl $1, (%rax) + {evex} rcl $2, (%rax) + {evex} rcl %cl, (%rax) + {evex} rcr $1, (%rax) + {evex} rcr $2, (%rax) + {evex} rcr %cl, (%rax) + {evex} rol $1, (%rax) + {evex} rol $2, (%rax) + {evex} rol %cl, (%rax) + {evex} ror $1, (%rax) + {evex} ror $2, (%rax) + {evex} ror %cl, (%rax) + {evex} sal $1, (%rax) + {evex} sal $2, (%rax) + {evex} sal %cl, (%rax) + {evex} sar $1, (%rax) + {evex} sar $2, (%rax) + {evex} sar %cl, (%rax) + {evex} sbb $1, (%rax) + {evex} sbb $0x89, (%rax) + {evex} sbb $0x1234, (%rax) + {evex} sbb $0x12345678, (%rax) + {evex} shl $1, (%rax) + {evex} shl $2, (%rax) + {evex} shl %cl, (%rax) + {evex} shr $1, (%rax) + {evex} shr $2, (%rax) + {evex} shr %cl, (%rax) + {evex} sub $1, (%rax) + {evex} sub $0x89, (%rax) + {evex} sub $0x1234, (%rax) + {evex} sub $0x12345678, (%rax) + {evex} xor $1, (%rax) + {evex} xor $0x89, (%rax) + {evex} xor $0x1234, (%rax) + {evex} xor $0x12345678, (%rax) diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d index d049c09..5e7b695 100644 --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d @@ -101,11 +101,14 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 d9 7c 08 90 ac 87 23 01 00 00[ ]+kmovw[ ]+k5,WORD PTR \[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 da 7c 08 49 84 87 23 01 00 00[ ]+ldtilecfg[ ]+\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 fc 7d 08 60 c2[ ]+movbe[ ]+ax,r18w +[ ]*[a-f0-9]+:[ ]*62 d4 7d 08 60 c7[ ]+movbe[ ]+ax,r15w [ ]*[a-f0-9]+:[ ]*62 ec 7d 08 61 94 80 23 01 00 00[ ]+movbe[ ]+WORD PTR \[r16\+rax\*4\+0x123\],r18w [ ]*[a-f0-9]+:[ ]*62 cc 7d 08 61 94 87 23 01 00 00[ ]+movbe[ ]+WORD PTR \[r31\+rax\*4\+0x123\],r18w [ ]*[a-f0-9]+:[ ]*62 dc 7c 08 60 d1[ ]+movbe[ ]+edx,r25d +[ ]*[a-f0-9]+:[ ]*62 d4 7c 08 60 d7[ ]+movbe[ ]+edx,r15d [ ]*[a-f0-9]+:[ ]*62 6c 7c 08 61 8c 80 23 01 00 00[ ]+movbe[ ]+DWORD PTR \[r16\+rax\*4\+0x123\],r25d [ ]*[a-f0-9]+:[ ]*62 5c fc 08 60 ff[ ]+movbe[ ]+r15,r31 +[ ]*[a-f0-9]+:[ ]*62 54 fc 08 60 f8[ ]+movbe[ ]+r15,r8 [ ]*[a-f0-9]+:[ ]*62 6c fc 08 61 bc 80 23 01 00 00[ ]+movbe[ ]+QWORD PTR \[r16\+rax\*4\+0x123\],r31 [ ]*[a-f0-9]+:[ ]*62 4c fc 08 61 bc 87 23 01 00 00[ ]+movbe[ ]+QWORD PTR \[r31\+rax\*4\+0x123\],r31 [ ]*[a-f0-9]+:[ ]*62 6c fc 08 60 bc 80 23 01 00 00[ ]+movbe[ ]+r31,QWORD PTR \[r16\+rax\*4\+0x123\] diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d index 9237c34..88840a1 100644 --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d @@ -101,11 +101,14 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 d9 7c 08 90 ac 87 23 01 00 00[ ]+kmovw[ ]+0x123\(%r31,%rax,4\),%k5 [ ]*[a-f0-9]+:[ ]*62 da 7c 08 49 84 87 23 01 00 00[ ]+ldtilecfg[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 fc 7d 08 60 c2[ ]+movbe[ ]+%r18w,%ax +[ ]*[a-f0-9]+:[ ]*62 d4 7d 08 60 c7[ ]+movbe[ ]+%r15w,%ax [ ]*[a-f0-9]+:[ ]*62 ec 7d 08 61 94 80 23 01 00 00[ ]+movbe[ ]+%r18w,0x123\(%r16,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 cc 7d 08 61 94 87 23 01 00 00[ ]+movbe[ ]+%r18w,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 dc 7c 08 60 d1[ ]+movbe[ ]+%r25d,%edx +[ ]*[a-f0-9]+:[ ]*62 d4 7c 08 60 d7[ ]+movbe[ ]+%r15d,%edx [ ]*[a-f0-9]+:[ ]*62 6c 7c 08 61 8c 80 23 01 00 00[ ]+movbe[ ]+%r25d,0x123\(%r16,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 5c fc 08 60 ff[ ]+movbe[ ]+%r31,%r15 +[ ]*[a-f0-9]+:[ ]*62 54 fc 08 60 f8[ ]+movbe[ ]+%r8,%r15 [ ]*[a-f0-9]+:[ ]*62 6c fc 08 61 bc 80 23 01 00 00[ ]+movbe[ ]+%r31,0x123\(%r16,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c fc 08 61 bc 87 23 01 00 00[ ]+movbe[ ]+%r31,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 6c fc 08 60 bc 80 23 01 00 00[ ]+movbe[ ]+0x123\(%r16,%rax,4\),%r31 diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d index 9b103f5..bdffa30 100644 --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d @@ -101,11 +101,14 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 d9 7c 08 90 ac 87 23 01 00 00[ ]+kmovw[ ]+0x123\(%r31,%rax,4\),%k5 [ ]*[a-f0-9]+:[ ]*62 da 7c 08 49 84 87 23 01 00 00[ ]+ldtilecfg[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 fc 7d 08 60 c2[ ]+movbe[ ]+%r18w,%ax +[ ]*[a-f0-9]+:[ ]*62 d4 7d 08 60 c7[ ]+movbe[ ]+%r15w,%ax [ ]*[a-f0-9]+:[ ]*62 ec 7d 08 61 94 80 23 01 00 00[ ]+movbe[ ]+%r18w,0x123\(%r16,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 cc 7d 08 61 94 87 23 01 00 00[ ]+movbe[ ]+%r18w,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 dc 7c 08 60 d1[ ]+movbe[ ]+%r25d,%edx +[ ]*[a-f0-9]+:[ ]*62 d4 7c 08 60 d7[ ]+movbe[ ]+%r15d,%edx [ ]*[a-f0-9]+:[ ]*62 6c 7c 08 61 8c 80 23 01 00 00[ ]+movbe[ ]+%r25d,0x123\(%r16,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 5c fc 08 60 ff[ ]+movbe[ ]+%r31,%r15 +[ ]*[a-f0-9]+:[ ]*62 54 fc 08 60 f8[ ]+movbe[ ]+%r8,%r15 [ ]*[a-f0-9]+:[ ]*62 6c fc 08 61 bc 80 23 01 00 00[ ]+movbe[ ]+%r31,0x123\(%r16,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c fc 08 61 bc 87 23 01 00 00[ ]+movbe[ ]+%r31,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 6c fc 08 60 bc 80 23 01 00 00[ ]+movbe[ ]+0x123\(%r16,%rax,4\),%r31 diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s index 8380678..1ba7d72 100644 --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s @@ -95,11 +95,14 @@ _start: kmovw 0x123(%r31,%rax,4),%k5 ldtilecfg 0x123(%r31,%rax,4) movbe %r18w,%ax + movbe %r15w,%ax movbe %r18w,0x123(%r16,%rax,4) movbe %r18w,0x123(%r31,%rax,4) movbe %r25d,%edx + movbe %r15d,%edx movbe %r25d,0x123(%r16,%rax,4) movbe %r31,%r15 + movbe %r8,%r15 movbe %r31,0x123(%r16,%rax,4) movbe %r31,0x123(%r31,%rax,4) movbe 0x123(%r16,%rax,4),%r31 diff --git a/gas/testsuite/gas/i386/x86-64-apx_f-evex.d b/gas/testsuite/gas/i386/x86-64-apx_f-evex.d new file mode 100644 index 0000000..12326f5 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx_f-evex.d @@ -0,0 +1,606 @@ +#as: +#objdump: -dw +#name: x86_64 APX_F insns with evex pseudo prefix +#source: x86-64-apx_f-evex.s + +.*: +file format .* + +Disassembly of section \.text: + +0+ <_start>: +\s*[a-f0-9]+:\s*62 54 fc 08 fc bc 80 23 01 00 00\s+\{evex\} aadd\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7c 08 fc bc 80 23 01 00 00\s+\{evex\} aadd\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fd 08 fc bc 80 23 01 00 00\s+\{evex\} aand\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7d 08 fc bc 80 23 01 00 00\s+\{evex\} aand\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 d0 7b\s+\{evex\} adc\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 94 80 23 01 00 00 7b\s+\{evex\} adcb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 11 ff\s+\{evex\} adc\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 11 fa\s+\{evex\} adc\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 11 f8\s+\{evex\} adc\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 10 c2\s+\{evex\} adc\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 10 84 80 23 01 00 00\s+\{evex\} adc\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 12 84 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 fd 08 66 ff\s+\{evex\} adcx\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7d 08 66 d7\s+\{evex\} adcx\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 fd 08 66 bc 80 23 01 00 00\s+\{evex\} adcx\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7d 08 66 bc 80 23 01 00 00\s+\{evex\} adcx\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 c0 7b\s+\{evex\} add\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 84 80 23 01 00 00 7b\s+\{evex\} addb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 84 80 23 01 00 00 7b\s+\{evex\} addw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 84 80 23 01 00 00 7b\s+\{evex\} addl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 84 80 23 01 00 00 7b\s+\{evex\} addq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 01 ff\s+\{evex\} add\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 01 fa\s+\{evex\} add\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 01 f8\s+\{evex\} add\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 00 c2\s+\{evex\} add\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 00 84 80 23 01 00 00\s+\{evex\} add\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 02 84 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 fe 08 66 ff\s+\{evex\} adox\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7e 08 66 d7\s+\{evex\} adox\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 fe 08 66 bc 80 23 01 00 00\s+\{evex\} adox\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7e 08 66 bc 80 23 01 00 00\s+\{evex\} adox\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 e0 7b\s+\{evex\} and\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 a4 80 23 01 00 00 7b\s+\{evex\} andb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 21 ff\s+\{evex\} and\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 21 fa\s+\{evex\} and\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 21 f8\s+\{evex\} and\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 20 c2\s+\{evex\} and\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 20 84 80 23 01 00 00\s+\{evex\} and\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 22 84 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 52 84 08 f2 df\s+\{evex\} andn\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6c 08 f2 d7\s+\{evex\} andn\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 84 08 f2 bc 80 23 01 00 00\s+\{evex\} andn\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f2 94 80 23 01 00 00\s+\{evex\} andn\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 54 ff 08 fc bc 80 23 01 00 00\s+\{evex\} aor\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7f 08 fc bc 80 23 01 00 00\s+\{evex\} aor\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fe 08 fc bc 80 23 01 00 00\s+\{evex\} axor\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7e 08 fc bc 80 23 01 00 00\s+\{evex\} axor\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 84 08 f7 df\s+\{evex\} bextr\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 84 08 f7 bc 80 23 01 00 00\s+\{evex\} bextr\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 04 08 f7 d2\s+\{evex\} bextr\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 04 08 f7 94 80 23 01 00 00\s+\{evex\} bextr\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 df\s+\{evex\} blsi\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 df\s+\{evex\} blsi\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 d7\s+\{evex\} blsmsk\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 d7\s+\{evex\} blsmsk\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 cf\s+\{evex\} blsr\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 cf\s+\{evex\} blsr\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 52 84 08 f5 df\s+\{evex\} bzhi\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 84 08 f5 bc 80 23 01 00 00\s+\{evex\} bzhi\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 04 08 f5 d2\s+\{evex\} bzhi\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 04 08 f5 94 80 23 01 00 00\s+\{evex\} bzhi\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 52 85 08 e6 bc 80 23 01 00 00\s+\{evex\} cmpbexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e6 94 80 23 01 00 00\s+\{evex\} cmpbexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e2 bc 80 23 01 00 00\s+\{evex\} cmpbxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e2 94 80 23 01 00 00\s+\{evex\} cmpbxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ee bc 80 23 01 00 00\s+\{evex\} cmplexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ee 94 80 23 01 00 00\s+\{evex\} cmplexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ec bc 80 23 01 00 00\s+\{evex\} cmplxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ec 94 80 23 01 00 00\s+\{evex\} cmplxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e7 bc 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e7 94 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e3 bc 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e3 94 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ef bc 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ef 94 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ed bc 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ed 94 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e1 bc 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e1 94 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 eb bc 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 eb 94 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e9 bc 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e9 94 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e5 bc 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e5 94 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e0 bc 80 23 01 00 00\s+\{evex\} cmpoxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e0 94 80 23 01 00 00\s+\{evex\} cmpoxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ea bc 80 23 01 00 00\s+\{evex\} cmppxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ea 94 80 23 01 00 00\s+\{evex\} cmppxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e8 bc 80 23 01 00 00\s+\{evex\} cmpsxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e8 94 80 23 01 00 00\s+\{evex\} cmpsxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e4 bc 80 23 01 00 00\s+\{evex\} cmpzxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e4 94 80 23 01 00 00\s+\{evex\} cmpzxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff cf\s+\{evex\} dec\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 ff cf\s+\{evex\} dec\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 ff cf\s+\{evex\} dec\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 fe c8\s+\{evex\} dec\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 fe 8c 80 23 01 00 00\s+\{evex\} decb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 ff 8c 80 23 01 00 00\s+\{evex\} decw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 ff 8c 80 23 01 00 00\s+\{evex\} decl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff 8c 80 23 01 00 00\s+\{evex\} decq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 f7\s+\{evex\} div\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 f7\s+\{evex\} div\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 f7\s+\{evex\} div\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f0\s+\{evex\} div\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 b4 80 23 01 00 00\s+\{evex\} divb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 b4 80 23 01 00 00\s+\{evex\} divw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 b4 80 23 01 00 00\s+\{evex\} divl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 b4 80 23 01 00 00\s+\{evex\} divq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmd\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*67 62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmd\s+0x123\(%r8d,%eax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmds\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*67 62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmds\s+0x123\(%r8d,%eax,4\),%r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ff\s+\{evex\} idiv\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ff\s+\{evex\} idiv\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ff\s+\{evex\} idiv\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f8\s+\{evex\} idiv\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 bc 80 23 01 00 00\s+\{evex\} idivb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 bc 80 23 01 00 00\s+\{evex\} idivw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 bc 80 23 01 00 00\s+\{evex\} idivl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 bc 80 23 01 00 00\s+\{evex\} idivq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ef\s+\{evex\} imul\s+%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 af ff\s+\{evex\} imul\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ef\s+\{evex\} imul\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7c 08 af d7\s+\{evex\} imul\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ef\s+\{evex\} imul\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7d 08 af c7\s+\{evex\} imul\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e8\s+\{evex\} imul\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 ac 80 23 01 00 00\s+\{evex\} imulb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ac 80 23 01 00 00\s+\{evex\} imulw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ac 80 23 01 00 00\s+\{evex\} imull\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ac 80 23 01 00 00\s+\{evex\} imulq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 f4 7d 08 6b c2 7b\s+\{evex\} imul \$0x7b,%dx,%ax +\s*[a-f0-9]+:\s*62 f4 7c 08 6b d1 7b\s+\{evex\} imul \$0x7b,%ecx,%edx +\s*[a-f0-9]+:\s*62 54 fc 08 6b f9 7b\s+\{evex\} imul \$0x7b,%r9,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 6b c9 7b\s+\{evex\} imul \$0x7b,%r9,%r9 +\s*[a-f0-9]+:\s*62 d4 7d 08 6b 94 80 23 01 00 00 7b\s+\{evex\} imul \$0x7b,0x123\(%r8,%rax,4\),%dx +\s*[a-f0-9]+:\s*62 d4 7c 08 6b 8c 80 23 01 00 00 7b\s+\{evex\} imul \$0x7b,0x123\(%r8,%rax,4\),%ecx +\s*[a-f0-9]+:\s*62 54 fc 08 6b 8c 80 23 01 00 00 7b\s+\{evex\} imul \$0x7b,0x123\(%r8,%rax,4\),%r9 +\s*[a-f0-9]+:\s*62 f4 7d 08 6b c2 90\s+\{evex\} imul \$0xff90,%dx,%ax +\s*[a-f0-9]+:\s*62 f4 7c 08 69 d1 90 ff 00 00\s+\{evex\} imul \$0xff90,%ecx,%edx +\s*[a-f0-9]+:\s*62 54 fc 08 69 f9 90 ff 00 00\s+\{evex\} imul \$0xff90,%r9,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 69 c9 90 ff 00 00\s+\{evex\} imul \$0xff90,%r9,%r9 +\s*[a-f0-9]+:\s*62 d4 7d 08 6b 94 80 23 01 00 00 90\s+\{evex\} imul \$0xff90,0x123\(%r8,%rax,4\),%dx +\s*[a-f0-9]+:\s*62 d4 7c 08 69 8c 80 23 01 00 00 90 ff 00 00\s+\{evex\} imul \$0xff90,0x123\(%r8,%rax,4\),%ecx +\s*[a-f0-9]+:\s*62 54 fc 08 69 8c 80 23 01 00 00 90 ff 00 00\s+\{evex\} imul \$0xff90,0x123\(%r8,%rax,4\),%r9 +\s*[a-f0-9]+:\s*62 d4 fc 08 ff c7\s+\{evex\} inc\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 ff c7\s+\{evex\} inc\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 ff c7\s+\{evex\} inc\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 fe c0\s+\{evex\} inc\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 fe 84 80 23 01 00 00\s+\{evex\} incb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 ff 84 80 23 01 00 00\s+\{evex\} incw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 ff 84 80 23 01 00 00\s+\{evex\} incl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff 84 80 23 01 00 00\s+\{evex\} incq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7e 08 f0 bc 80 23 01 00 00\s+\{evex\} invept\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7e 08 f2 bc 80 23 01 00 00\s+\{evex\} invpcid\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7e 08 f1 bc 80 23 01 00 00\s+\{evex\} invvpid\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 f1 7d 08 90 eb\s+\{evex\} kmovb\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 7d 08 93 fd\s+\{evex\} kmovb\s+%k5,%r15d +\s*[a-f0-9]+:\s*62 d1 7d 08 91 ac 80 23 01 00 00\s+\{evex\} kmovb\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 7d 08 92 ef\s+\{evex\} kmovb\s+%r15d,%k5 +\s*[a-f0-9]+:\s*62 d1 7d 08 90 ac 80 23 01 00 00\s+\{evex\} kmovb\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 f1 fd 08 90 eb\s+\{evex\} kmovd\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 7f 08 93 fd\s+\{evex\} kmovd\s+%k5,%r15d +\s*[a-f0-9]+:\s*62 d1 fd 08 91 ac 80 23 01 00 00\s+\{evex\} kmovd\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 7f 08 92 ef\s+\{evex\} kmovd\s+%r15d,%k5 +\s*[a-f0-9]+:\s*62 d1 fd 08 90 ac 80 23 01 00 00\s+\{evex\} kmovd\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 f1 fc 08 90 eb\s+\{evex\} kmovq\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 ff 08 93 fd\s+\{evex\} kmovq\s+%k5,%r15 +\s*[a-f0-9]+:\s*62 d1 fc 08 91 ac 80 23 01 00 00\s+\{evex\} kmovq\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 ff 08 92 ef\s+\{evex\} kmovq\s+%r15,%k5 +\s*[a-f0-9]+:\s*62 d1 fc 08 90 ac 80 23 01 00 00\s+\{evex\} kmovq\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 f1 7c 08 90 eb\s+\{evex\} kmovw\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 7c 08 93 fd\s+\{evex\} kmovw\s+%k5,%r15d +\s*[a-f0-9]+:\s*62 d1 7c 08 91 ac 80 23 01 00 00\s+\{evex\} kmovw\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 7c 08 92 ef\s+\{evex\} kmovw\s+%r15d,%k5 +\s*[a-f0-9]+:\s*62 d1 7c 08 90 ac 80 23 01 00 00\s+\{evex\} kmovw\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 54 fc 08 f5 ff\s+\{evex\} lzcnt\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f5 d7\s+\{evex\} lzcnt\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 f5 c7\s+\{evex\} lzcnt\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 fc 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 fc 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7c 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7d 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*67 62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+0x123\(%r8d,%eax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 fc 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7c 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 e7\s+\{evex\} mul\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 e7\s+\{evex\} mul\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 e7\s+\{evex\} mul\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e0\s+\{evex\} mul\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 a4 80 23 01 00 00\s+\{evex\} mulb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 a4 80 23 01 00 00\s+\{evex\} mulw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 a4 80 23 01 00 00\s+\{evex\} mull\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 a4 80 23 01 00 00\s+\{evex\} mulq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 87 08 f6 df\s+\{evex\} mulx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6f 08 f6 d7\s+\{evex\} mulx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 87 08 f6 bc 80 23 01 00 00\s+\{evex\} mulx\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 07 08 f6 94 80 23 01 00 00\s+\{evex\} mulx\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 df\s+\{evex\} neg\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 df\s+\{evex\} neg\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 df\s+\{evex\} neg\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d8\s+\{evex\} neg\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 9c 80 23 01 00 00\s+\{evex\} negb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 9c 80 23 01 00 00\s+\{evex\} negw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 9c 80 23 01 00 00\s+\{evex\} negl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 9c 80 23 01 00 00\s+\{evex\} negq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 d7\s+\{evex\} not\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 d7\s+\{evex\} not\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 d7\s+\{evex\} not\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d0\s+\{evex\} not\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 94 80 23 01 00 00\s+\{evex\} notb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 94 80 23 01 00 00\s+\{evex\} notw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 94 80 23 01 00 00\s+\{evex\} notl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 94 80 23 01 00 00\s+\{evex\} notq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 c8 7b\s+\{evex\} or\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 8c 80 23 01 00 00 7b\s+\{evex\} orb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 09 ff\s+\{evex\} or\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 09 fa\s+\{evex\} or\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 09 f8\s+\{evex\} or\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 08 c2\s+\{evex\} or\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 08 84 80 23 01 00 00\s+\{evex\} or\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 0a 84 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 52 87 08 f5 df\s+\{evex\} pdep\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6f 08 f5 d7\s+\{evex\} pdep\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 87 08 f5 bc 80 23 01 00 00\s+\{evex\} pdep\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 07 08 f5 94 80 23 01 00 00\s+\{evex\} pdep\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 52 86 08 f5 df\s+\{evex\} pext\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6e 08 f5 d7\s+\{evex\} pext\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 86 08 f5 bc 80 23 01 00 00\s+\{evex\} pext\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 06 08 f5 94 80 23 01 00 00\s+\{evex\} pext\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 54 fc 08 88 ff\s+\{evex\} popcnt\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 88 d7\s+\{evex\} popcnt\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 88 c7\s+\{evex\} popcnt\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 fc 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d0 7b\s+\{evex\} rcl\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 94 80 23 01 00 00 7b\s+\{evex\} rclb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rclw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rcll\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rclq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 d7\s+\{evex\} rcl\s+\$1,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 d7\s+\{evex\} rcl\s+\$1,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 d7\s+\{evex\} rcl\s+\$1,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d0\s+\{evex\} rcl\s+\$1,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 94 80 23 01 00 00\s+\{evex\} rclb\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 94 80 23 01 00 00\s+\{evex\} rclw\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 94 80 23 01 00 00\s+\{evex\} rcll\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 94 80 23 01 00 00\s+\{evex\} rclq\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d0\s+\{evex\} rcl\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 94 80 23 01 00 00\s+\{evex\} rclb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 94 80 23 01 00 00\s+\{evex\} rclw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 94 80 23 01 00 00\s+\{evex\} rcll\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 94 80 23 01 00 00\s+\{evex\} rclq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d8 7b\s+\{evex\} rcr\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 9c 80 23 01 00 00 7b\s+\{evex\} rcrb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 df\s+\{evex\} rcr\s+\$1,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 df\s+\{evex\} rcr\s+\$1,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 df\s+\{evex\} rcr\s+\$1,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d8\s+\{evex\} rcr\s+\$1,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 9c 80 23 01 00 00\s+\{evex\} rcrb\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrw\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrl\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrq\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 df\s+\{evex\} rcr\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 df\s+\{evex\} rcr\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 df\s+\{evex\} rcr\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d8\s+\{evex\} rcr\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 9c 80 23 01 00 00\s+\{evex\} rcrb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c0 7b\s+\{evex\} rol\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 84 80 23 01 00 00 7b\s+\{evex\} rolb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 84 80 23 01 00 00 7b\s+\{evex\} rolw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 84 80 23 01 00 00 7b\s+\{evex\} roll\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 84 80 23 01 00 00 7b\s+\{evex\} rolq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 c7\s+\{evex\} rol\s+\$1,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 c7\s+\{evex\} rol\s+\$1,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 c7\s+\{evex\} rol\s+\$1,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c0\s+\{evex\} rol\s+\$1,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 84 80 23 01 00 00\s+\{evex\} rolb\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 84 80 23 01 00 00\s+\{evex\} rolw\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 84 80 23 01 00 00\s+\{evex\} roll\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 84 80 23 01 00 00\s+\{evex\} rolq\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 c7\s+\{evex\} rol\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 c7\s+\{evex\} rol\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 c7\s+\{evex\} rol\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c0\s+\{evex\} rol\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 84 80 23 01 00 00\s+\{evex\} rolb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 84 80 23 01 00 00\s+\{evex\} rolw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 84 80 23 01 00 00\s+\{evex\} roll\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 84 80 23 01 00 00\s+\{evex\} rolq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c8 7b\s+\{evex\} ror\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 8c 80 23 01 00 00 7b\s+\{evex\} rorb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 cf\s+\{evex\} ror\s+\$1,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 cf\s+\{evex\} ror\s+\$1,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 cf\s+\{evex\} ror\s+\$1,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c8\s+\{evex\} ror\s+\$1,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 8c 80 23 01 00 00\s+\{evex\} rorb\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 8c 80 23 01 00 00\s+\{evex\} rorw\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 8c 80 23 01 00 00\s+\{evex\} rorl\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 8c 80 23 01 00 00\s+\{evex\} rorq\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 cf\s+\{evex\} ror\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 cf\s+\{evex\} ror\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 cf\s+\{evex\} ror\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c8\s+\{evex\} ror\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 8c 80 23 01 00 00\s+\{evex\} rorb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 8c 80 23 01 00 00\s+\{evex\} rorw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 8c 80 23 01 00 00\s+\{evex\} rorl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 8c 80 23 01 00 00\s+\{evex\} rorq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 53 ff 08 f0 ff 7b\s+\{evex\} rorx\s+\$0x7b,%r15,%r15 +\s*[a-f0-9]+:\s*62 d3 7f 08 f0 d7 7b\s+\{evex\} rorx\s+\$0x7b,%r15d,%edx +\s*[a-f0-9]+:\s*62 53 ff 08 f0 bc 80 23 01 00 00 7b\s+\{evex\} rorx\s+\$0x7b,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 53 7f 08 f0 bc 80 23 01 00 00 7b\s+\{evex\} rorx\s+\$0x7b,0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e0 7b\s+\{evex\} shl\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 a4 80 23 01 00 00 7b\s+\{evex\} shlb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shll\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 e7\s+\{evex\} shl\s+\$1,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+\$1,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+\$1,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+\$1,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shlb\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shlw\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shll\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shlq\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 e7\s+\{evex\} shl\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 e7\s+\{evex\} shl\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 e7\s+\{evex\} shl\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e0\s+\{evex\} shl\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 a4 80 23 01 00 00\s+\{evex\} shlb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 a4 80 23 01 00 00\s+\{evex\} shlw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 a4 80 23 01 00 00\s+\{evex\} shll\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 a4 80 23 01 00 00\s+\{evex\} shlq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 f8 7b\s+\{evex\} sar\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 bc 80 23 01 00 00 7b\s+\{evex\} sarb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ff\s+\{evex\} sar\s+\$1,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ff\s+\{evex\} sar\s+\$1,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ff\s+\{evex\} sar\s+\$1,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 f8\s+\{evex\} sar\s+\$1,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 bc 80 23 01 00 00\s+\{evex\} sarb\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 bc 80 23 01 00 00\s+\{evex\} sarw\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 bc 80 23 01 00 00\s+\{evex\} sarl\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 bc 80 23 01 00 00\s+\{evex\} sarq\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ff\s+\{evex\} sar\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ff\s+\{evex\} sar\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ff\s+\{evex\} sar\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 f8\s+\{evex\} sar\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 bc 80 23 01 00 00\s+\{evex\} sarb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 bc 80 23 01 00 00\s+\{evex\} sarw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 bc 80 23 01 00 00\s+\{evex\} sarl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 bc 80 23 01 00 00\s+\{evex\} sarq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 86 08 f7 df\s+\{evex\} sarx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 86 08 f7 bc 80 23 01 00 00\s+\{evex\} sarx\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 06 08 f7 d2\s+\{evex\} sarx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 06 08 f7 94 80 23 01 00 00\s+\{evex\} sarx\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 d8 7b\s+\{evex\} sbb\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 9c 80 23 01 00 00 7b\s+\{evex\} sbbb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 19 ff\s+\{evex\} sbb\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 19 fa\s+\{evex\} sbb\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 19 f8\s+\{evex\} sbb\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 18 c2\s+\{evex\} sbb\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 18 84 80 23 01 00 00\s+\{evex\} sbb\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 1a 84 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e0 7b\s+\{evex\} shl\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 a4 80 23 01 00 00 7b\s+\{evex\} shlb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shll\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 e7\s+\{evex\} shl\s+\$1,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+\$1,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+\$1,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+\$1,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shlb\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shlw\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shll\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shlq\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 e7\s+\{evex\} shl\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 e7\s+\{evex\} shl\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 e7\s+\{evex\} shl\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e0\s+\{evex\} shl\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 a4 80 23 01 00 00\s+\{evex\} shlb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 a4 80 23 01 00 00\s+\{evex\} shlw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 a4 80 23 01 00 00\s+\{evex\} shll\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 a4 80 23 01 00 00\s+\{evex\} shlq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 24 ff 7b\s+\{evex\} shld\s+\$0x7b,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 24 fa 7b\s+\{evex\} shld\s+\$0x7b,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 24 f8 7b\s+\{evex\} shld\s+\$0x7b,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 a5 ff\s+\{evex\} shld\s+%cl,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 a5 fa\s+\{evex\} shld\s+%cl,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 a5 f8\s+\{evex\} shld\s+%cl,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 f7 df\s+\{evex\} shlx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 85 08 f7 bc 80 23 01 00 00\s+\{evex\} shlx\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 05 08 f7 d2\s+\{evex\} shlx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 05 08 f7 94 80 23 01 00 00\s+\{evex\} shlx\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e8 7b\s+\{evex\} shr\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 ac 80 23 01 00 00 7b\s+\{evex\} shrb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ef\s+\{evex\} shr\s+\$1,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ef\s+\{evex\} shr\s+\$1,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ef\s+\{evex\} shr\s+\$1,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e8\s+\{evex\} shr\s+\$1,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 ac 80 23 01 00 00\s+\{evex\} shrb\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ac 80 23 01 00 00\s+\{evex\} shrw\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ac 80 23 01 00 00\s+\{evex\} shrl\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ac 80 23 01 00 00\s+\{evex\} shrq\s+\$1,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ef\s+\{evex\} shr\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ef\s+\{evex\} shr\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ef\s+\{evex\} shr\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e8\s+\{evex\} shr\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 ac 80 23 01 00 00\s+\{evex\} shrb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ac 80 23 01 00 00\s+\{evex\} shrw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ac 80 23 01 00 00\s+\{evex\} shrl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ac 80 23 01 00 00\s+\{evex\} shrq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 2c ff 7b\s+\{evex\} shrd\s+\$0x7b,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 2c fa 7b\s+\{evex\} shrd\s+\$0x7b,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 2c f8 7b\s+\{evex\} shrd\s+\$0x7b,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 ad ff\s+\{evex\} shrd\s+%cl,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 ad fa\s+\{evex\} shrd\s+%cl,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 ad f8\s+\{evex\} shrd\s+%cl,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 87 08 f7 df\s+\{evex\} shrx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 87 08 f7 bc 80 23 01 00 00\s+\{evex\} shrx\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 07 08 f7 d2\s+\{evex\} shrx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 07 08 f7 94 80 23 01 00 00\s+\{evex\} shrx\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 e8 7b\s+\{evex\} sub\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 ac 80 23 01 00 00 7b\s+\{evex\} subb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 29 ff\s+\{evex\} sub\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 29 fa\s+\{evex\} sub\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 29 f8\s+\{evex\} sub\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 28 c2\s+\{evex\} sub\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 28 84 80 23 01 00 00\s+\{evex\} sub\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 2a 84 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 fc 08 f4 ff\s+\{evex\} tzcnt\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f4 d7\s+\{evex\} tzcnt\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 f4 c7\s+\{evex\} tzcnt\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 fc 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 66 bc 80 23 01 00 00\s+\{evex\} wrssd\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 66 bc 80 23 01 00 00\s+\{evex\} wrssq\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7d 08 65 bc 80 23 01 00 00\s+\{evex\} wrussd\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fd 08 65 bc 80 23 01 00 00\s+\{evex\} wrussq\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 f0 7b\s+\{evex\} xor\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 b4 80 23 01 00 00 7b\s+\{evex\} xorb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 31 ff\s+\{evex\} xor\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 31 fa\s+\{evex\} xor\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 31 f8\s+\{evex\} xor\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 30 c2\s+\{evex\} xor\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 30 84 80 23 01 00 00\s+\{evex\} xor\s+%r8b,0x123\(%r8,%rax,4\) +#pass diff --git a/gas/testsuite/gas/i386/x86-64-apx_f-evex.s b/gas/testsuite/gas/i386/x86-64-apx_f-evex.s new file mode 100644 index 0000000..908505d --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx_f-evex.s @@ -0,0 +1,603 @@ +# Check 64bit APX_F instructions with evex pseudo prefix + + .text +_start: + {evex} aadd %r15,0x123(%r8,%rax,4) + {evex} aadd %r15d,0x123(%r8,%rax,4) + {evex} aand %r15,0x123(%r8,%rax,4) + {evex} aand %r15d,0x123(%r8,%rax,4) + {evex} adc $0x7b,%r15 + {evex} adc $0x7b,%r15d + {evex} adc $0x7b,%r15w + {evex} adc $0x7b,%r8b + {evex} adcb $0x7b,0x123(%r8,%rax,4) + {evex} adcw $0x7b,0x123(%r8,%rax,4) + {evex} adcl $0x7b,0x123(%r8,%rax,4) + {evex} adcq $0x7b,0x123(%r8,%rax,4) + {evex} adc %r15,%r15 + {evex} adc %r15,0x123(%r8,%rax,4) + {evex} adc %r15d,%edx + {evex} adc %r15d,0x123(%r8,%rax,4) + {evex} adc %r15w,%ax + {evex} adc %r15w,0x123(%r8,%rax,4) + {evex} adc %r8b,%dl + {evex} adc %r8b,0x123(%r8,%rax,4) + {evex} adc 0x123(%r8,%rax,4),%r15 + {evex} adc 0x123(%r8,%rax,4),%r15d + {evex} adc 0x123(%r8,%rax,4),%r15w + {evex} adc 0x123(%r8,%rax,4),%r8b + {evex} adcx %r15,%r15 + {evex} adcx %r15d,%edx + {evex} adcx 0x123(%r8,%rax,4),%r15 + {evex} adcx 0x123(%r8,%rax,4),%r15d + {evex} add $0x7b,%r15 + {evex} add $0x7b,%r15d + {evex} add $0x7b,%r15w + {evex} add $0x7b,%r8b + {evex} addb $0x7b,0x123(%r8,%rax,4) + {evex} addw $0x7b,0x123(%r8,%rax,4) + {evex} addl $0x7b,0x123(%r8,%rax,4) + {evex} addq $0x7b,0x123(%r8,%rax,4) + {evex} add %r15,%r15 + {evex} add %r15,0x123(%r8,%rax,4) + {evex} add %r15d,%edx + {evex} add %r15d,0x123(%r8,%rax,4) + {evex} add %r15w,%ax + {evex} add %r15w,0x123(%r8,%rax,4) + {evex} add %r8b,%dl + {evex} add %r8b,0x123(%r8,%rax,4) + {evex} add 0x123(%r8,%rax,4),%r15 + {evex} add 0x123(%r8,%rax,4),%r15d + {evex} add 0x123(%r8,%rax,4),%r15w + {evex} add 0x123(%r8,%rax,4),%r8b + {evex} adox %r15,%r15 + {evex} adox %r15d,%edx + {evex} adox 0x123(%r8,%rax,4),%r15 + {evex} adox 0x123(%r8,%rax,4),%r15d + {evex} and $0x7b,%r15 + {evex} and $0x7b,%r15d + {evex} and $0x7b,%r15w + {evex} and $0x7b,%r8b + {evex} andb $0x7b,0x123(%r8,%rax,4) + {evex} andw $0x7b,0x123(%r8,%rax,4) + {evex} andl $0x7b,0x123(%r8,%rax,4) + {evex} andq $0x7b,0x123(%r8,%rax,4) + {evex} and %r15,%r15 + {evex} and %r15,0x123(%r8,%rax,4) + {evex} and %r15d,%edx + {evex} and %r15d,0x123(%r8,%rax,4) + {evex} and %r15w,%ax + {evex} and %r15w,0x123(%r8,%rax,4) + {evex} and %r8b,%dl + {evex} and %r8b,0x123(%r8,%rax,4) + {evex} and 0x123(%r8,%rax,4),%r15 + {evex} and 0x123(%r8,%rax,4),%r15d + {evex} and 0x123(%r8,%rax,4),%r15w + {evex} and 0x123(%r8,%rax,4),%r8b + {evex} andn %r15,%r15,%r11 + {evex} andn %r15d,%edx,%r10d + {evex} andn 0x123(%r8,%rax,4),%r15,%r15 + {evex} andn 0x123(%r8,%rax,4),%r15d,%edx + {evex} aor %r15,0x123(%r8,%rax,4) + {evex} aor %r15d,0x123(%r8,%rax,4) + {evex} axor %r15,0x123(%r8,%rax,4) + {evex} axor %r15d,0x123(%r8,%rax,4) + {evex} bextr %r15,%r15,%r11 + {evex} bextr %r15,0x123(%r8,%rax,4),%r15 + {evex} bextr %r15d,%edx,%r10d + {evex} bextr %r15d,0x123(%r8,%rax,4),%edx + {evex} blsi %r15,%r15 + {evex} blsi %r15d,%edx + {evex} blsi 0x123(%r8,%rax,4),%r15 + {evex} blsi 0x123(%r8,%rax,4),%r15d + {evex} blsmsk %r15,%r15 + {evex} blsmsk %r15d,%edx + {evex} blsmsk 0x123(%r8,%rax,4),%r15 + {evex} blsmsk 0x123(%r8,%rax,4),%r15d + {evex} blsr %r15,%r15 + {evex} blsr %r15d,%edx + {evex} blsr 0x123(%r8,%rax,4),%r15 + {evex} blsr 0x123(%r8,%rax,4),%r15d + {evex} bzhi %r15,%r15,%r11 + {evex} bzhi %r15,0x123(%r8,%rax,4),%r15 + {evex} bzhi %r15d,%edx,%r10d + {evex} bzhi %r15d,0x123(%r8,%rax,4),%edx + {evex} cmpbexadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpbexadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpbxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpbxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmplexadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmplexadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmplxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmplxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpnbexadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpnbexadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpnbxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpnbxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpnlexadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpnlexadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpnlxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpnlxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpnoxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpnoxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpnpxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpnpxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpnsxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpnsxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpnzxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpnzxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpoxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpoxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmppxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmppxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpsxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpsxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} cmpzxadd %r15,%r15,0x123(%r8,%rax,4) + {evex} cmpzxadd %r15d,%edx,0x123(%r8,%rax,4) + {evex} dec %r15 + {evex} dec %r15d + {evex} dec %r15w + {evex} dec %r8b + {evex} decb 0x123(%r8,%rax,4) + {evex} decw 0x123(%r8,%rax,4) + {evex} decl 0x123(%r8,%rax,4) + {evex} decq 0x123(%r8,%rax,4) + {evex} div %r15 + {evex} div %r15d + {evex} div %r15w + {evex} div %r8b + {evex} divb 0x123(%r8,%rax,4) + {evex} divw 0x123(%r8,%rax,4) + {evex} divl 0x123(%r8,%rax,4) + {evex} divq 0x123(%r8,%rax,4) + {evex} enqcmd 0x123(%r8,%rax,4),%r15 + {evex} enqcmd 0x123(%r8d,%eax,4),%r15d + {evex} enqcmds 0x123(%r8,%rax,4),%r15 + {evex} enqcmds 0x123(%r8d,%eax,4),%r15d + {evex} idiv %r15 + {evex} idiv %r15d + {evex} idiv %r15w + {evex} idiv %r8b + {evex} idivb 0x123(%r8,%rax,4) + {evex} idivw 0x123(%r8,%rax,4) + {evex} idivl 0x123(%r8,%rax,4) + {evex} idivq 0x123(%r8,%rax,4) + {evex} imul %r15 + {evex} imul %r15,%r15 + {evex} imul %r15d + {evex} imul %r15d,%edx + {evex} imul %r15w + {evex} imul %r15w,%ax + {evex} imul %r8b + {evex} imulb 0x123(%r8,%rax,4) + {evex} imulw 0x123(%r8,%rax,4) + {evex} imull 0x123(%r8,%rax,4) + {evex} imul 0x123(%r8,%rax,4),%r15 + {evex} imul 0x123(%r8,%rax,4),%r15d + {evex} imul 0x123(%r8,%rax,4),%r15w + {evex} imulq 0x123(%r8,%rax,4) + {evex} imul $0x7b, %dx, %ax + {evex} imul $0x7b, %ecx, %edx + {evex} imul $0x7b, %r9, %r15 + {evex} imul $0x7b, %r9 + {evex} imul $0x7b, 291(%r8, %rax, 4), %dx + {evex} imul $0x7b, 291(%r8, %rax, 4), %ecx + {evex} imul $0x7b, 291(%r8, %rax, 4), %r9 + {evex} imul $0xff90, %dx, %ax + {evex} imul $0xff90, %ecx, %edx + {evex} imul $0xff90, %r9, %r15 + {evex} imul $0xff90, %r9 + {evex} imul $0xff90, 291(%r8, %rax, 4), %dx + {evex} imul $0xff90, 291(%r8, %rax, 4), %ecx + {evex} imul $0xff90, 291(%r8, %rax, 4), %r9 + {evex} inc %r15 + {evex} inc %r15d + {evex} inc %r15w + {evex} inc %r8b + {evex} incb 0x123(%r8,%rax,4) + {evex} incw 0x123(%r8,%rax,4) + {evex} incl 0x123(%r8,%rax,4) + {evex} incq 0x123(%r8,%rax,4) + {evex} invept 0x123(%r8,%rax,4),%r15 + {evex} invpcid 0x123(%r8,%rax,4),%r15 + {evex} invvpid 0x123(%r8,%rax,4),%r15 + {evex} kmovb %k3,%k5 + {evex} kmovb %k5,%r15d + {evex} kmovb %k5,0x123(%r8,%rax,4) + {evex} kmovb %r15d,%k5 + {evex} kmovb 0x123(%r8,%rax,4),%k5 + {evex} kmovd %k3,%k5 + {evex} kmovd %k5,%r15d + {evex} kmovd %k5,0x123(%r8,%rax,4) + {evex} kmovd %r15d,%k5 + {evex} kmovd 0x123(%r8,%rax,4),%k5 + {evex} kmovq %k3,%k5 + {evex} kmovq %k5,%r15 + {evex} kmovq %k5,0x123(%r8,%rax,4) + {evex} kmovq %r15,%k5 + {evex} kmovq 0x123(%r8,%rax,4),%k5 + {evex} kmovw %k3,%k5 + {evex} kmovw %k5,%r15d + {evex} kmovw %k5,0x123(%r8,%rax,4) + {evex} kmovw %r15d,%k5 + {evex} kmovw 0x123(%r8,%rax,4),%k5 + {evex} lzcnt %r15,%r15 + {evex} lzcnt %r15d,%edx + {evex} lzcnt %r15w,%ax + {evex} lzcnt 0x123(%r8,%rax,4),%r15 + {evex} lzcnt 0x123(%r8,%rax,4),%r15d + {evex} lzcnt 0x123(%r8,%rax,4),%r15w + {evex} movbe %r15,0x123(%r8,%rax,4) + {evex} movbe %r15d,0x123(%r8,%rax,4) + {evex} movbe %r15w,0x123(%r8,%rax,4) + {evex} movbe 0x123(%r8,%rax,4),%r15 + {evex} movbe 0x123(%r8,%rax,4),%r15d + {evex} movbe 0x123(%r8,%rax,4),%r15w + {evex} movdir64b 0x123(%r8,%rax,4),%r15 + {evex} movdir64b 0x123(%r8d,%eax,4),%r15d + {evex} movdiri %r15,0x123(%r8,%rax,4) + {evex} movdiri %r15d,0x123(%r8,%rax,4) + {evex} mul %r15 + {evex} mul %r15d + {evex} mul %r15w + {evex} mul %r8b + {evex} mulb 0x123(%r8,%rax,4) + {evex} mulw 0x123(%r8,%rax,4) + {evex} mull 0x123(%r8,%rax,4) + {evex} mulq 0x123(%r8,%rax,4) + {evex} mulx %r15,%r15,%r11 + {evex} mulx %r15d,%edx,%r10d + {evex} mulx 0x123(%r8,%rax,4),%r15,%r15 + {evex} mulx 0x123(%r8,%rax,4),%r15d,%edx + {evex} neg %r15 + {evex} neg %r15d + {evex} neg %r15w + {evex} neg %r8b + {evex} negb 0x123(%r8,%rax,4) + {evex} negw 0x123(%r8,%rax,4) + {evex} negl 0x123(%r8,%rax,4) + {evex} negq 0x123(%r8,%rax,4) + {evex} not %r15 + {evex} not %r15d + {evex} not %r15w + {evex} not %r8b + {evex} notb 0x123(%r8,%rax,4) + {evex} notw 0x123(%r8,%rax,4) + {evex} notl 0x123(%r8,%rax,4) + {evex} notq 0x123(%r8,%rax,4) + {evex} or $0x7b,%r15 + {evex} or $0x7b,%r15d + {evex} or $0x7b,%r15w + {evex} or $0x7b,%r8b + {evex} orb $0x7b,0x123(%r8,%rax,4) + {evex} orw $0x7b,0x123(%r8,%rax,4) + {evex} orl $0x7b,0x123(%r8,%rax,4) + {evex} orq $0x7b,0x123(%r8,%rax,4) + {evex} or %r15,%r15 + {evex} or %r15,0x123(%r8,%rax,4) + {evex} or %r15d,%edx + {evex} or %r15d,0x123(%r8,%rax,4) + {evex} or %r15w,%ax + {evex} or %r15w,0x123(%r8,%rax,4) + {evex} or %r8b,%dl + {evex} or %r8b,0x123(%r8,%rax,4) + {evex} or 0x123(%r8,%rax,4),%r15 + {evex} or 0x123(%r8,%rax,4),%r15d + {evex} or 0x123(%r8,%rax,4),%r15w + {evex} or 0x123(%r8,%rax,4),%r8b + {evex} pdep %r15,%r15,%r11 + {evex} pdep %r15d,%edx,%r10d + {evex} pdep 0x123(%r8,%rax,4),%r15,%r15 + {evex} pdep 0x123(%r8,%rax,4),%r15d,%edx + {evex} pext %r15,%r15,%r11 + {evex} pext %r15d,%edx,%r10d + {evex} pext 0x123(%r8,%rax,4),%r15,%r15 + {evex} pext 0x123(%r8,%rax,4),%r15d,%edx + {evex} popcnt %r15,%r15 + {evex} popcnt %r15d,%edx + {evex} popcnt %r15w,%ax + {evex} popcnt 0x123(%r8,%rax,4),%r15 + {evex} popcnt 0x123(%r8,%rax,4),%r15d + {evex} popcnt 0x123(%r8,%rax,4),%r15w + {evex} rcl $0x7b,%r15 + {evex} rcl $0x7b,%r15d + {evex} rcl $0x7b,%r15w + {evex} rcl $0x7b,%r8b + {evex} rclb $0x7b,0x123(%r8,%rax,4) + {evex} rclw $0x7b,0x123(%r8,%rax,4) + {evex} rcll $0x7b,0x123(%r8,%rax,4) + {evex} rclq $0x7b,0x123(%r8,%rax,4) + {evex} rcl $1,%r15 + {evex} rcl $1,%r15d + {evex} rcl $1,%r15w + {evex} rcl $1,%r8b + {evex} rclb $1,0x123(%r8,%rax,4) + {evex} rclw $1,0x123(%r8,%rax,4) + {evex} rcll $1,0x123(%r8,%rax,4) + {evex} rclq $1,0x123(%r8,%rax,4) + {evex} rcl %cl,%r15 + {evex} rcl %cl,%r15d + {evex} rcl %cl,%r15w + {evex} rcl %cl,%r8b + {evex} rclb %cl,0x123(%r8,%rax,4) + {evex} rclw %cl,0x123(%r8,%rax,4) + {evex} rcll %cl,0x123(%r8,%rax,4) + {evex} rclq %cl,0x123(%r8,%rax,4) + {evex} rcr $0x7b,%r15 + {evex} rcr $0x7b,%r15d + {evex} rcr $0x7b,%r15w + {evex} rcr $0x7b,%r8b + {evex} rcrb $0x7b,0x123(%r8,%rax,4) + {evex} rcrw $0x7b,0x123(%r8,%rax,4) + {evex} rcrl $0x7b,0x123(%r8,%rax,4) + {evex} rcrq $0x7b,0x123(%r8,%rax,4) + {evex} rcr $1,%r15 + {evex} rcr $1,%r15d + {evex} rcr $1,%r15w + {evex} rcr $1,%r8b + {evex} rcrb $1,0x123(%r8,%rax,4) + {evex} rcrw $1,0x123(%r8,%rax,4) + {evex} rcrl $1,0x123(%r8,%rax,4) + {evex} rcrq $1,0x123(%r8,%rax,4) + {evex} rcr %cl,%r15 + {evex} rcr %cl,%r15d + {evex} rcr %cl,%r15w + {evex} rcr %cl,%r8b + {evex} rcrb %cl,0x123(%r8,%rax,4) + {evex} rcrw %cl,0x123(%r8,%rax,4) + {evex} rcrl %cl,0x123(%r8,%rax,4) + {evex} rcrq %cl,0x123(%r8,%rax,4) + {evex} rol $0x7b,%r15 + {evex} rol $0x7b,%r15d + {evex} rol $0x7b,%r15w + {evex} rol $0x7b,%r8b + {evex} rolb $0x7b,0x123(%r8,%rax,4) + {evex} rolw $0x7b,0x123(%r8,%rax,4) + {evex} roll $0x7b,0x123(%r8,%rax,4) + {evex} rolq $0x7b,0x123(%r8,%rax,4) + {evex} rol $1,%r15 + {evex} rol $1,%r15d + {evex} rol $1,%r15w + {evex} rol $1,%r8b + {evex} rolb $1,0x123(%r8,%rax,4) + {evex} rolw $1,0x123(%r8,%rax,4) + {evex} roll $1,0x123(%r8,%rax,4) + {evex} rolq $1,0x123(%r8,%rax,4) + {evex} rol %cl,%r15 + {evex} rol %cl,%r15d + {evex} rol %cl,%r15w + {evex} rol %cl,%r8b + {evex} rolb %cl,0x123(%r8,%rax,4) + {evex} rolw %cl,0x123(%r8,%rax,4) + {evex} roll %cl,0x123(%r8,%rax,4) + {evex} rolq %cl,0x123(%r8,%rax,4) + {evex} ror $0x7b,%r15 + {evex} ror $0x7b,%r15d + {evex} ror $0x7b,%r15w + {evex} ror $0x7b,%r8b + {evex} rorb $0x7b,0x123(%r8,%rax,4) + {evex} rorw $0x7b,0x123(%r8,%rax,4) + {evex} rorl $0x7b,0x123(%r8,%rax,4) + {evex} rorq $0x7b,0x123(%r8,%rax,4) + {evex} ror $1,%r15 + {evex} ror $1,%r15d + {evex} ror $1,%r15w + {evex} ror $1,%r8b + {evex} rorb $1,0x123(%r8,%rax,4) + {evex} rorw $1,0x123(%r8,%rax,4) + {evex} rorl $1,0x123(%r8,%rax,4) + {evex} rorq $1,0x123(%r8,%rax,4) + {evex} ror %cl,%r15 + {evex} ror %cl,%r15d + {evex} ror %cl,%r15w + {evex} ror %cl,%r8b + {evex} rorb %cl,0x123(%r8,%rax,4) + {evex} rorw %cl,0x123(%r8,%rax,4) + {evex} rorl %cl,0x123(%r8,%rax,4) + {evex} rorq %cl,0x123(%r8,%rax,4) + {evex} rorx $0x7b,%r15,%r15 + {evex} rorx $0x7b,%r15d,%edx + {evex} rorx $0x7b,0x123(%r8,%rax,4),%r15 + {evex} rorx $0x7b,0x123(%r8,%rax,4),%r15d + {evex} sal $0x7b,%r15 + {evex} sal $0x7b,%r15d + {evex} sal $0x7b,%r15w + {evex} sal $0x7b,%r8b + {evex} salb $0x7b,0x123(%r8,%rax,4) + {evex} salw $0x7b,0x123(%r8,%rax,4) + {evex} sall $0x7b,0x123(%r8,%rax,4) + {evex} salq $0x7b,0x123(%r8,%rax,4) + {evex} sal $1,%r15 + {evex} sal $1,%r15d + {evex} sal $1,%r15w + {evex} sal $1,%r8b + {evex} salb $1,0x123(%r8,%rax,4) + {evex} salw $1,0x123(%r8,%rax,4) + {evex} sall $1,0x123(%r8,%rax,4) + {evex} salq $1,0x123(%r8,%rax,4) + {evex} sal %cl,%r15 + {evex} sal %cl,%r15d + {evex} sal %cl,%r15w + {evex} sal %cl,%r8b + {evex} salb %cl,0x123(%r8,%rax,4) + {evex} salw %cl,0x123(%r8,%rax,4) + {evex} sall %cl,0x123(%r8,%rax,4) + {evex} salq %cl,0x123(%r8,%rax,4) + {evex} sar $0x7b,%r15 + {evex} sar $0x7b,%r15d + {evex} sar $0x7b,%r15w + {evex} sar $0x7b,%r8b + {evex} sarb $0x7b,0x123(%r8,%rax,4) + {evex} sarw $0x7b,0x123(%r8,%rax,4) + {evex} sarl $0x7b,0x123(%r8,%rax,4) + {evex} sarq $0x7b,0x123(%r8,%rax,4) + {evex} sar $1,%r15 + {evex} sar $1,%r15d + {evex} sar $1,%r15w + {evex} sar $1,%r8b + {evex} sarb $1,0x123(%r8,%rax,4) + {evex} sarw $1,0x123(%r8,%rax,4) + {evex} sarl $1,0x123(%r8,%rax,4) + {evex} sarq $1,0x123(%r8,%rax,4) + {evex} sar %cl,%r15 + {evex} sar %cl,%r15d + {evex} sar %cl,%r15w + {evex} sar %cl,%r8b + {evex} sarb %cl,0x123(%r8,%rax,4) + {evex} sarw %cl,0x123(%r8,%rax,4) + {evex} sarl %cl,0x123(%r8,%rax,4) + {evex} sarq %cl,0x123(%r8,%rax,4) + {evex} sarx %r15,%r15,%r11 + {evex} sarx %r15,0x123(%r8,%rax,4),%r15 + {evex} sarx %r15d,%edx,%r10d + {evex} sarx %r15d,0x123(%r8,%rax,4),%edx + {evex} sbb $0x7b,%r15 + {evex} sbb $0x7b,%r15d + {evex} sbb $0x7b,%r15w + {evex} sbb $0x7b,%r8b + {evex} sbbb $0x7b,0x123(%r8,%rax,4) + {evex} sbbw $0x7b,0x123(%r8,%rax,4) + {evex} sbbl $0x7b,0x123(%r8,%rax,4) + {evex} sbbq $0x7b,0x123(%r8,%rax,4) + {evex} sbb %r15,%r15 + {evex} sbb %r15,0x123(%r8,%rax,4) + {evex} sbb %r15d,%edx + {evex} sbb %r15d,0x123(%r8,%rax,4) + {evex} sbb %r15w,%ax + {evex} sbb %r15w,0x123(%r8,%rax,4) + {evex} sbb %r8b,%dl + {evex} sbb %r8b,0x123(%r8,%rax,4) + {evex} sbb 0x123(%r8,%rax,4),%r15 + {evex} sbb 0x123(%r8,%rax,4),%r15d + {evex} sbb 0x123(%r8,%rax,4),%r15w + {evex} sbb 0x123(%r8,%rax,4),%r8b + {evex} shl $0x7b,%r15 + {evex} shl $0x7b,%r15d + {evex} shl $0x7b,%r15w + {evex} shl $0x7b,%r8b + {evex} shlb $0x7b,0x123(%r8,%rax,4) + {evex} shlw $0x7b,0x123(%r8,%rax,4) + {evex} shll $0x7b,0x123(%r8,%rax,4) + {evex} shlq $0x7b,0x123(%r8,%rax,4) + {evex} shl $1,%r15 + {evex} shl $1,%r15d + {evex} shl $1,%r15w + {evex} shl $1,%r8b + {evex} shlb $1,0x123(%r8,%rax,4) + {evex} shlw $1,0x123(%r8,%rax,4) + {evex} shll $1,0x123(%r8,%rax,4) + {evex} shlq $1,0x123(%r8,%rax,4) + {evex} shl %cl,%r15 + {evex} shl %cl,%r15d + {evex} shl %cl,%r15w + {evex} shl %cl,%r8b + {evex} shlb %cl,0x123(%r8,%rax,4) + {evex} shlw %cl,0x123(%r8,%rax,4) + {evex} shll %cl,0x123(%r8,%rax,4) + {evex} shlq %cl,0x123(%r8,%rax,4) + {evex} shld $0x7b,%r15,%r15 + {evex} shld $0x7b,%r15,0x123(%r8,%rax,4) + {evex} shld $0x7b,%r15d,%edx + {evex} shld $0x7b,%r15d,0x123(%r8,%rax,4) + {evex} shld $0x7b,%r15w,%ax + {evex} shld $0x7b,%r15w,0x123(%r8,%rax,4) + {evex} shld %cl,%r15,%r15 + {evex} shld %cl,%r15,0x123(%r8,%rax,4) + {evex} shld %cl,%r15d,%edx + {evex} shld %cl,%r15d,0x123(%r8,%rax,4) + {evex} shld %cl,%r15w,%ax + {evex} shld %cl,%r15w,0x123(%r8,%rax,4) + {evex} shlx %r15,%r15,%r11 + {evex} shlx %r15,0x123(%r8,%rax,4),%r15 + {evex} shlx %r15d,%edx,%r10d + {evex} shlx %r15d,0x123(%r8,%rax,4),%edx + {evex} shr $0x7b,%r15 + {evex} shr $0x7b,%r15d + {evex} shr $0x7b,%r15w + {evex} shr $0x7b,%r8b + {evex} shrb $0x7b,0x123(%r8,%rax,4) + {evex} shrw $0x7b,0x123(%r8,%rax,4) + {evex} shrl $0x7b,0x123(%r8,%rax,4) + {evex} shrq $0x7b,0x123(%r8,%rax,4) + {evex} shr $1,%r15 + {evex} shr $1,%r15d + {evex} shr $1,%r15w + {evex} shr $1,%r8b + {evex} shrb $1,0x123(%r8,%rax,4) + {evex} shrw $1,0x123(%r8,%rax,4) + {evex} shrl $1,0x123(%r8,%rax,4) + {evex} shrq $1,0x123(%r8,%rax,4) + {evex} shr %cl,%r15 + {evex} shr %cl,%r15d + {evex} shr %cl,%r15w + {evex} shr %cl,%r8b + {evex} shrb %cl,0x123(%r8,%rax,4) + {evex} shrw %cl,0x123(%r8,%rax,4) + {evex} shrl %cl,0x123(%r8,%rax,4) + {evex} shrq %cl,0x123(%r8,%rax,4) + {evex} shrd $0x7b,%r15,%r15 + {evex} shrd $0x7b,%r15,0x123(%r8,%rax,4) + {evex} shrd $0x7b,%r15d,%edx + {evex} shrd $0x7b,%r15d,0x123(%r8,%rax,4) + {evex} shrd $0x7b,%r15w,%ax + {evex} shrd $0x7b,%r15w,0x123(%r8,%rax,4) + {evex} shrd %cl,%r15,%r15 + {evex} shrd %cl,%r15,0x123(%r8,%rax,4) + {evex} shrd %cl,%r15d,%edx + {evex} shrd %cl,%r15d,0x123(%r8,%rax,4) + {evex} shrd %cl,%r15w,%ax + {evex} shrd %cl,%r15w,0x123(%r8,%rax,4) + {evex} shrx %r15,%r15,%r11 + {evex} shrx %r15,0x123(%r8,%rax,4),%r15 + {evex} shrx %r15d,%edx,%r10d + {evex} shrx %r15d,0x123(%r8,%rax,4),%edx + {evex} sub $0x7b,%r15 + {evex} sub $0x7b,%r15d + {evex} sub $0x7b,%r15w + {evex} sub $0x7b,%r8b + {evex} subb $0x7b,0x123(%r8,%rax,4) + {evex} subw $0x7b,0x123(%r8,%rax,4) + {evex} subl $0x7b,0x123(%r8,%rax,4) + {evex} subq $0x7b,0x123(%r8,%rax,4) + {evex} sub %r15,%r15 + {evex} sub %r15,0x123(%r8,%rax,4) + {evex} sub %r15d,%edx + {evex} sub %r15d,0x123(%r8,%rax,4) + {evex} sub %r15w,%ax + {evex} sub %r15w,0x123(%r8,%rax,4) + {evex} sub %r8b,%dl + {evex} sub %r8b,0x123(%r8,%rax,4) + {evex} sub 0x123(%r8,%rax,4),%r15 + {evex} sub 0x123(%r8,%rax,4),%r15d + {evex} sub 0x123(%r8,%rax,4),%r15w + {evex} sub 0x123(%r8,%rax,4),%r8b + {evex} tzcnt %r15,%r15 + {evex} tzcnt %r15d,%edx + {evex} tzcnt %r15w,%ax + {evex} tzcnt 0x123(%r8,%rax,4),%r15 + {evex} tzcnt 0x123(%r8,%rax,4),%r15d + {evex} tzcnt 0x123(%r8,%rax,4),%r15w + {evex} wrssd %r15d,0x123(%r8,%rax,4) + {evex} wrssq %r15,0x123(%r8,%rax,4) + {evex} wrussd %r15d,0x123(%r8,%rax,4) + {evex} wrussq %r15,0x123(%r8,%rax,4) + {evex} xor $0x7b,%r15 + {evex} xor $0x7b,%r15d + {evex} xor $0x7b,%r15w + {evex} xor $0x7b,%r8b + {evex} xorb $0x7b,0x123(%r8,%rax,4) + {evex} xorw $0x7b,0x123(%r8,%rax,4) + {evex} xorl $0x7b,0x123(%r8,%rax,4) + {evex} xorq $0x7b,0x123(%r8,%rax,4) + {evex} xor %r15,%r15 + {evex} xor %r15,0x123(%r8,%rax,4) + {evex} xor %r15d,%edx + {evex} xor %r15d,0x123(%r8,%rax,4) + {evex} xor %r15w,%ax + {evex} xor %r15w,0x123(%r8,%rax,4) + {evex} xor %r8b,%dl + {evex} xor %r8b,0x123(%r8,%rax,4) + {evex} xor 0x123(%r8,%rax,4),%r15 + {evex} xor 0x123(%r8,%rax,4),%r15d + {evex} xor 0x123(%r8,%rax,4),%r15w + {evex} xor 0x123(%r8,%rax,4),%r8b diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp index ccc8b55..e5e469c 100644 --- a/gas/testsuite/gas/i386/x86-64.exp +++ b/gas/testsuite/gas/i386/x86-64.exp @@ -133,6 +133,7 @@ run_dump_test "noreg64-data16" run_dump_test "noreg64-rex64" run_dump_test "noreg-intel64" run_list_test "noreg-intel64" "-I${srcdir}/$subdir -mintel64" +run_dump_test "noreg64-evex" run_list_test "movx64" "-al" run_list_test "cvtsi2sX" run_list_test "x86-64-nosse2" "-al" @@ -388,6 +389,7 @@ run_dump_test "x86-64-apx-jmpabs-intel" run_dump_test "x86-64-apx-jmpabs-inval" run_dump_test "x86-64-apx-nf" run_dump_test "x86-64-apx-nf-intel" +run_dump_test "x86-64-apx_f-evex" run_dump_test "x86-64-avx512f-rcigrz-intel" run_dump_test "x86-64-avx512f-rcigrz" run_dump_test "x86-64-clwb" diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h index 7a41c76..b158f2b 100644 --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -983,8 +983,8 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, /* 60 */ - { "movbeS", { Gv, Ev }, PREFIX_NP_OR_DATA }, - { "movbeS", { Ev, Gv }, PREFIX_NP_OR_DATA }, + { "%MEmovbeS", { Gv, Ev }, PREFIX_NP_OR_DATA }, + { "%MEmovbeS", { Ev, Gv }, PREFIX_NP_OR_DATA }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 5d2ec6d..3efe65a 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1809,7 +1809,11 @@ struct dis386 { "XV" => print "{vex} " pseudo prefix "XE" => print "{evex} " pseudo prefix if no EVEX-specific functionality is is used by an EVEX-encoded (AVX512VL) instruction. - "NF" => print "{nf} " pseudo prefix when EVEX.NF = 1. + "ME" => print "{evex} " pseudo prefix for ins->modrm.mod != 3,if no + EVEX-specific functionality is used by an EVEX-encoded (AVX512VL) + instruction. + "NF" => print "{nf} " pseudo prefix when EVEX.NF = 1 and print "{evex} " + pseudo prefix when instructions without NF, EGPR and VVVV, "YK" keep unused, to avoid ambiguity with the combined use of Y and K. "YX" keep unused, to avoid ambiguity with the combined use of Y and X. "LQ" => print 'l' ('d' in Intel mode) or 'q' for memory operand, cond @@ -3875,38 +3879,38 @@ static const struct dis386 prefix_table[][4] = { /* PREFIX_VEX_0F90_L_0_W_0 */ { - { "kmovw", { MaskG, MaskE }, 0 }, + { "%XEkmovw", { MaskG, MaskE }, 0 }, { Bad_Opcode }, - { "kmovb", { MaskG, MaskBDE }, 0 }, + { "%XEkmovb", { MaskG, MaskBDE }, 0 }, }, /* PREFIX_VEX_0F90_L_0_W_1 */ { - { "kmovq", { MaskG, MaskE }, 0 }, + { "%XEkmovq", { MaskG, MaskE }, 0 }, { Bad_Opcode }, - { "kmovd", { MaskG, MaskBDE }, 0 }, + { "%XEkmovd", { MaskG, MaskBDE }, 0 }, }, /* PREFIX_VEX_0F91_L_0_W_0 */ { - { "kmovw", { Mw, MaskG }, 0 }, + { "%XEkmovw", { Mw, MaskG }, 0 }, { Bad_Opcode }, - { "kmovb", { Mb, MaskG }, 0 }, + { "%XEkmovb", { Mb, MaskG }, 0 }, }, /* PREFIX_VEX_0F91_L_0_W_1 */ { - { "kmovq", { Mq, MaskG }, 0 }, + { "%XEkmovq", { Mq, MaskG }, 0 }, { Bad_Opcode }, - { "kmovd", { Md, MaskG }, 0 }, + { "%XEkmovd", { Md, MaskG }, 0 }, }, /* PREFIX_VEX_0F92_L_0_W_0 */ { - { "kmovw", { MaskG, Rdq }, 0 }, + { "%XEkmovw", { MaskG, Rdq }, 0 }, { Bad_Opcode }, - { "kmovb", { MaskG, Rdq }, 0 }, - { "kmovd", { MaskG, Rdq }, 0 }, + { "%XEkmovb", { MaskG, Rdq }, 0 }, + { "%XEkmovd", { MaskG, Rdq }, 0 }, }, /* PREFIX_VEX_0F92_L_0_W_1 */ @@ -3914,15 +3918,15 @@ static const struct dis386 prefix_table[][4] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "kmovK", { MaskG, Rdq }, 0 }, + { "%XEkmovK", { MaskG, Rdq }, 0 }, }, /* PREFIX_VEX_0F93_L_0_W_0 */ { - { "kmovw", { Gdq, MaskR }, 0 }, + { "%XEkmovw", { Gdq, MaskR }, 0 }, { Bad_Opcode }, - { "kmovb", { Gdq, MaskR }, 0 }, - { "kmovd", { Gdq, MaskR }, 0 }, + { "%XEkmovb", { Gdq, MaskR }, 0 }, + { "%XEkmovd", { Gdq, MaskR }, 0 }, }, /* PREFIX_VEX_0F93_L_0_W_1 */ @@ -3930,7 +3934,7 @@ static const struct dis386 prefix_table[][4] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "kmovK", { Gdq, MaskR }, 0 }, + { "%XEkmovK", { Gdq, MaskR }, 0 }, }, /* PREFIX_VEX_0F98_L_0_W_0 */ @@ -4102,9 +4106,9 @@ static const struct dis386 prefix_table[][4] = { /* PREFIX_VEX_0F38F5_L_0 */ { { "%NFbzhiS", { Gdq, Edq, VexGdq }, 0 }, - { "pextS", { Gdq, VexGdq, Edq }, 0 }, + { "%XEpextS", { Gdq, VexGdq, Edq }, 0 }, { Bad_Opcode }, - { "pdepS", { Gdq, VexGdq, Edq }, 0 }, + { "%XEpdepS", { Gdq, VexGdq, Edq }, 0 }, }, /* PREFIX_VEX_0F38F6_L_0 */ @@ -4112,15 +4116,15 @@ static const struct dis386 prefix_table[][4] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "mulxS", { Gdq, VexGdq, Edq }, 0 }, + { "%XEmulxS", { Gdq, VexGdq, Edq }, 0 }, }, /* PREFIX_VEX_0F38F7_L_0 */ { { "%NFbextrS", { Gdq, Edq, VexGdq }, 0 }, - { "sarxS", { Gdq, Edq, VexGdq }, 0 }, - { "shlxS", { Gdq, Edq, VexGdq }, 0 }, - { "shrxS", { Gdq, Edq, VexGdq }, 0 }, + { "%XEsarxS", { Gdq, Edq, VexGdq }, 0 }, + { "%XEshlxS", { Gdq, Edq, VexGdq }, 0 }, + { "%XEshrxS", { Gdq, Edq, VexGdq }, 0 }, }, /* PREFIX_VEX_0F3AF0_L_0 */ @@ -4128,7 +4132,7 @@ static const struct dis386 prefix_table[][4] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "rorxS", { Gdq, Edq, Ib }, 0 }, + { "%XErorxS", { Gdq, Edq, Ib }, 0 }, }, /* PREFIX_VEX_MAP7_F8_L_0_W_0_R_0_X86_64 */ @@ -4492,97 +4496,97 @@ static const struct dis386 x86_64_table[][2] = { /* X86_64_VEX_0F38E0 */ { { Bad_Opcode }, - { "cmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38E1 */ { { Bad_Opcode }, - { "cmpnoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38E2 */ { { Bad_Opcode }, - { "cmpbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38E3 */ { { Bad_Opcode }, - { "cmpnbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38E4 */ { { Bad_Opcode }, - { "cmpzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38E5 */ { { Bad_Opcode }, - { "cmpnzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38E6 */ { { Bad_Opcode }, - { "cmpbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38E7 */ { { Bad_Opcode }, - { "cmpnbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38E8 */ { { Bad_Opcode }, - { "cmpsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38E9 */ { { Bad_Opcode }, - { "cmpnsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38EA */ { { Bad_Opcode }, - { "cmppxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmppxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38EB */ { { Bad_Opcode }, - { "cmpnpxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnpxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38EC */ { { Bad_Opcode }, - { "cmplxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmplxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38ED */ { { Bad_Opcode }, - { "cmpnlxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnlxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38EE */ { { Bad_Opcode }, - { "cmplexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmplexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_0F38EF */ { { Bad_Opcode }, - { "cmpnlexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnlexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_VEX_MAP7_F8_L_0_W_0_R_0 */ @@ -10391,6 +10395,16 @@ putop (instr_info *ins, const char *in_template, int sizeflag) int cond = 1; unsigned int l = 0, len = 0; char last[4]; + bool evex_printed = false; + + /* We don't want to add any prefix or suffix to (bad), so return early. */ + if (!strncmp (in_template, "(bad)", 5)) + { + oappend (ins, "(bad)"); + *ins->obufp = 0; + ins->mnemonicendp = ins->obufp; + return 0; + } for (p = in_template; *p; p++) { @@ -10404,6 +10418,12 @@ putop (instr_info *ins, const char *in_template, int sizeflag) switch (*p) { default: + if (ins->evex_type == evex_from_legacy && !ins->vex.nd + && !(ins->rex2 & 7) && !evex_printed) + { + oappend (ins, "{evex} "); + evex_printed = true; + } *ins->obufp++ = *p; break; case '%': @@ -10540,6 +10560,11 @@ putop (instr_info *ins, const char *in_template, int sizeflag) *ins->obufp++ = '}'; *ins->obufp++ = ' '; break; + case 'M': + if (ins->modrm.mod != 3 && !(ins->rex2 & 7)) + oappend (ins, "{evex} "); + evex_printed = true; + break; default: abort (); } @@ -10581,6 +10606,13 @@ putop (instr_info *ins, const char *in_template, int sizeflag) oappend (ins, "{nf} "); /* This bit needs to be cleared after it is consumed. */ ins->vex.nf = false; + evex_printed = true; + } + else if (ins->evex_type == evex_from_vex && !(ins->rex2 & 7) + && ins->vex.v) + { + oappend (ins, "{evex} "); + evex_printed = true; } } else |