mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 14:39:09 +08:00
gas/testsuite/
2007-06-23 H.J. Lu <hongjiu.lu@intel.com> PR binutils/4667 * gas/i386/i386.exp: Run simd, simd-intel, x86-64-simd and x86-64-simd-intel. * gas/i386/opcode-intel.d: Updated. * gas/i386/simd-intel.d: New. * gas/i386/simd.d: Likewise. * gas/i386/simd.s: Likewise. * gas/i386/x86-64-simd-intel.d: Likewise. * gas/i386/x86-64-simd.d: Likewise. * gas/i386/x86-64-simd.s: Likewise. opcodes/ 2007-06-23 H.J. Lu <hongjiu.lu@intel.com> PR binutils/4667 * i386-dis.c (EX): Removed. (EMd): New. (EMq): Likewise. (EXd): Likewise. (EXq): Likewise. (EXx): Likewise. (PREGRP93...PREGRP97): Likewise. (dis386_twobyte): Updated. (prefix_user_table): Updated. Add PREGRP93...PREGRP97. (OP_EX): Remove Intel syntax handling.
This commit is contained in:
@ -1,3 +1,18 @@
|
|||||||
|
2007-06-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR binutils/4667
|
||||||
|
* gas/i386/i386.exp: Run simd, simd-intel, x86-64-simd
|
||||||
|
and x86-64-simd-intel.
|
||||||
|
|
||||||
|
* gas/i386/opcode-intel.d: Updated.
|
||||||
|
|
||||||
|
* gas/i386/simd-intel.d: New.
|
||||||
|
* gas/i386/simd.d: Likewise.
|
||||||
|
* gas/i386/simd.s: Likewise.
|
||||||
|
* gas/i386/x86-64-simd-intel.d: Likewise.
|
||||||
|
* gas/i386/x86-64-simd.d: Likewise.
|
||||||
|
* gas/i386/x86-64-simd.s: Likewise.
|
||||||
|
|
||||||
2007-06-18 Kazu Hirata <kazu@codesourcery.com>
|
2007-06-18 Kazu Hirata <kazu@codesourcery.com>
|
||||||
|
|
||||||
* gas/m68k/all.exp: Run mcf-wdebug.
|
* gas/m68k/all.exp: Run mcf-wdebug.
|
||||||
|
@ -78,6 +78,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
|
|||||||
run_dump_test "crc32"
|
run_dump_test "crc32"
|
||||||
run_dump_test "crc32-intel"
|
run_dump_test "crc32-intel"
|
||||||
run_list_test "inval-crc32" "-al"
|
run_list_test "inval-crc32" "-al"
|
||||||
|
run_dump_test "simd"
|
||||||
|
run_dump_test "simd-intel"
|
||||||
|
|
||||||
# These tests require support for 8 and 16 bit relocs,
|
# These tests require support for 8 and 16 bit relocs,
|
||||||
# so we only run them for ELF and COFF targets.
|
# so we only run them for ELF and COFF targets.
|
||||||
@ -170,6 +172,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
|
|||||||
run_dump_test "x86-64-crc32"
|
run_dump_test "x86-64-crc32"
|
||||||
run_dump_test "x86-64-crc32-intel"
|
run_dump_test "x86-64-crc32-intel"
|
||||||
run_list_test "x86-64-inval-crc32" "-al"
|
run_list_test "x86-64-inval-crc32" "-al"
|
||||||
|
run_dump_test "x86-64-simd"
|
||||||
|
run_dump_test "x86-64-simd-intel"
|
||||||
|
|
||||||
if { ![istarget "*-*-aix*"]
|
if { ![istarget "*-*-aix*"]
|
||||||
&& ![istarget "*-*-beos*"]
|
&& ![istarget "*-*-beos*"]
|
||||||
|
@ -282,9 +282,9 @@ Disassembly of section .text:
|
|||||||
*[0-9a-f]+: 0f 4d 90 90 90 90 90[ ]+cmovge[ ]+edx,(DWORD PTR )?\[eax-0x6f6f6f70\]
|
*[0-9a-f]+: 0f 4d 90 90 90 90 90[ ]+cmovge[ ]+edx,(DWORD PTR )?\[eax-0x6f6f6f70\]
|
||||||
*[0-9a-f]+: 0f 4e 90 90 90 90 90[ ]+cmovle[ ]+edx,(DWORD PTR )?\[eax-0x6f6f6f70\]
|
*[0-9a-f]+: 0f 4e 90 90 90 90 90[ ]+cmovle[ ]+edx,(DWORD PTR )?\[eax-0x6f6f6f70\]
|
||||||
*[0-9a-f]+: 0f 4f 90 90 90 90 90[ ]+cmovg[ ]+edx,(DWORD PTR )?\[eax-0x6f6f6f70\]
|
*[0-9a-f]+: 0f 4f 90 90 90 90 90[ ]+cmovg[ ]+edx,(DWORD PTR )?\[eax-0x6f6f6f70\]
|
||||||
*[0-9a-f]+: 0f 60 90 90 90 90 90[ ]+punpcklbw[ ]+mm2,(QWORD PTR )?\[eax-0x6f6f6f70\]
|
*[0-9a-f]+: 0f 60 90 90 90 90 90[ ]+punpcklbw[ ]+mm2,(DWORD PTR )?\[eax-0x6f6f6f70\]
|
||||||
*[0-9a-f]+: 0f 61 90 90 90 90 90[ ]+punpcklwd[ ]+mm2,(QWORD PTR )?\[eax-0x6f6f6f70\]
|
*[0-9a-f]+: 0f 61 90 90 90 90 90[ ]+punpcklwd[ ]+mm2,(DWORD PTR )?\[eax-0x6f6f6f70\]
|
||||||
*[0-9a-f]+: 0f 62 90 90 90 90 90[ ]+punpckldq[ ]+mm2,(QWORD PTR )?\[eax-0x6f6f6f70\]
|
*[0-9a-f]+: 0f 62 90 90 90 90 90[ ]+punpckldq[ ]+mm2,(DWORD PTR )?\[eax-0x6f6f6f70\]
|
||||||
*[0-9a-f]+: 0f 63 90 90 90 90 90[ ]+packsswb[ ]+mm2,(QWORD PTR )?\[eax-0x6f6f6f70\]
|
*[0-9a-f]+: 0f 63 90 90 90 90 90[ ]+packsswb[ ]+mm2,(QWORD PTR )?\[eax-0x6f6f6f70\]
|
||||||
*[0-9a-f]+: 0f 64 90 90 90 90 90[ ]+pcmpgtb[ ]+mm2,(QWORD PTR )?\[eax-0x6f6f6f70\]
|
*[0-9a-f]+: 0f 64 90 90 90 90 90[ ]+pcmpgtb[ ]+mm2,(QWORD PTR )?\[eax-0x6f6f6f70\]
|
||||||
*[0-9a-f]+: 0f 65 90 90 90 90 90[ ]+pcmpgtw[ ]+mm2,(QWORD PTR )?\[eax-0x6f6f6f70\]
|
*[0-9a-f]+: 0f 65 90 90 90 90 90[ ]+pcmpgtw[ ]+mm2,(QWORD PTR )?\[eax-0x6f6f6f70\]
|
||||||
|
37
gas/testsuite/gas/i386/simd-intel.d
Normal file
37
gas/testsuite/gas/i386/simd-intel.d
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#source: simd.s
|
||||||
|
#as: -J
|
||||||
|
#objdump: -dw -Mintel
|
||||||
|
#name: i386 SIMD (Intel mode)
|
||||||
|
|
||||||
|
.*: +file format .*
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
0+ <_start>:
|
||||||
|
[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps xmm1,XMMWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd xmm1,QWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss xmm1,DWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd xmm1,QWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq xmm1,XMMWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd xmm1,QWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq xmm1,XMMWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps xmm1,XMMWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu XMMWORD PTR ds:0x12345678,xmm1
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu xmm1,XMMWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd QWORD PTR ds:0x12345678,xmm1
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd xmm1,QWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps QWORD PTR ds:0x12345678,xmm1
|
||||||
|
[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps xmm1,QWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd QWORD PTR ds:0x12345678,xmm1
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd xmm1,QWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps QWORD PTR ds:0x12345678,xmm1
|
||||||
|
[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps xmm1,QWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup xmm1,XMMWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup xmm1,XMMWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw xmm1,XMMWORD PTR ds:0x12345678,0x90
|
||||||
|
[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw xmm1,XMMWORD PTR ds:0x12345678,0x90
|
||||||
|
[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw mm1,DWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq mm1,DWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd mm1,DWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd xmm1,QWORD PTR ds:0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss xmm1,DWORD PTR ds:0x12345678
|
36
gas/testsuite/gas/i386/simd.d
Normal file
36
gas/testsuite/gas/i386/simd.d
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#as: -J
|
||||||
|
#objdump: -dw
|
||||||
|
#name: i386 SIMD
|
||||||
|
|
||||||
|
.*: +file format .*
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
0+ <_start>:
|
||||||
|
[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678
|
||||||
|
[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678,%mm1
|
||||||
|
[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678,%mm1
|
||||||
|
[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678,%mm1
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678,%xmm1
|
||||||
|
[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678,%xmm1
|
29
gas/testsuite/gas/i386/simd.s
Normal file
29
gas/testsuite/gas/i386/simd.s
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
.text
|
||||||
|
_start:
|
||||||
|
addsubps 0x12345678,%xmm1
|
||||||
|
comisd 0x12345678,%xmm1
|
||||||
|
comiss 0x12345678,%xmm1
|
||||||
|
cvtdq2pd 0x12345678,%xmm1
|
||||||
|
cvtpd2dq 0x12345678,%xmm1
|
||||||
|
cvtps2pd 0x12345678,%xmm1
|
||||||
|
cvttps2dq 0x12345678,%xmm1
|
||||||
|
haddps 0x12345678,%xmm1
|
||||||
|
movdqu %xmm1,0x12345678
|
||||||
|
movdqu 0x12345678,%xmm1
|
||||||
|
movhpd %xmm1,0x12345678
|
||||||
|
movhpd 0x12345678,%xmm1
|
||||||
|
movhps %xmm1,0x12345678
|
||||||
|
movhps 0x12345678,%xmm1
|
||||||
|
movlpd %xmm1,0x12345678
|
||||||
|
movlpd 0x12345678,%xmm1
|
||||||
|
movlps %xmm1,0x12345678
|
||||||
|
movlps 0x12345678,%xmm1
|
||||||
|
movshdup 0x12345678,%xmm1
|
||||||
|
movsldup 0x12345678,%xmm1
|
||||||
|
pshufhw $0x90,0x12345678,%xmm1
|
||||||
|
pshuflw $0x90,0x12345678,%xmm1
|
||||||
|
punpcklbw 0x12345678,%mm1
|
||||||
|
punpckldq 0x12345678,%mm1
|
||||||
|
punpcklwd 0x12345678,%mm1
|
||||||
|
ucomisd 0x12345678,%xmm1
|
||||||
|
ucomiss 0x12345678,%xmm1
|
37
gas/testsuite/gas/i386/x86-64-simd-intel.d
Normal file
37
gas/testsuite/gas/i386/x86-64-simd-intel.d
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#source: x86-64-simd.s
|
||||||
|
#as: -J
|
||||||
|
#objdump: -dw -Mintel
|
||||||
|
#name: x86-64 SIMD (Intel mode)
|
||||||
|
|
||||||
|
.*: +file format .*
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
0+ <_start>:
|
||||||
|
[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps xmm1,XMMWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd xmm1,QWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss xmm1,DWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd xmm1,QWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq xmm1,XMMWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd xmm1,QWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq xmm1,XMMWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps xmm1,XMMWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu XMMWORD PTR \[rip\+0x12345678\],xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu xmm1,XMMWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd QWORD PTR \[rip\+0x12345678\],xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd xmm1,QWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps QWORD PTR \[rip\+0x12345678\],xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps xmm1,QWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd QWORD PTR \[rip\+0x12345678\],xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd xmm1,QWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps QWORD PTR \[rip\+0x12345678\],xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps xmm1,QWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup xmm1,XMMWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup xmm1,XMMWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw mm1,DWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq mm1,DWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd mm1,DWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd xmm1,QWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss xmm1,DWORD PTR \[rip\+0x12345678\][ ]*(#.*)?
|
36
gas/testsuite/gas/i386/x86-64-simd.d
Normal file
36
gas/testsuite/gas/i386/x86-64-simd.d
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#as: -J
|
||||||
|
#objdump: -dw
|
||||||
|
#name: x86-64 SIMD
|
||||||
|
|
||||||
|
.*: +file format .*
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
0+ <_start>:
|
||||||
|
[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\)[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\)[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\)[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\)[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\)[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
||||||
|
[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1[ ]*(#.*)?
|
29
gas/testsuite/gas/i386/x86-64-simd.s
Normal file
29
gas/testsuite/gas/i386/x86-64-simd.s
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
.text
|
||||||
|
_start:
|
||||||
|
addsubps 0x12345678(%rip),%xmm1
|
||||||
|
comisd 0x12345678(%rip),%xmm1
|
||||||
|
comiss 0x12345678(%rip),%xmm1
|
||||||
|
cvtdq2pd 0x12345678(%rip),%xmm1
|
||||||
|
cvtpd2dq 0x12345678(%rip),%xmm1
|
||||||
|
cvtps2pd 0x12345678(%rip),%xmm1
|
||||||
|
cvttps2dq 0x12345678(%rip),%xmm1
|
||||||
|
haddps 0x12345678(%rip),%xmm1
|
||||||
|
movdqu %xmm1,0x12345678(%rip)
|
||||||
|
movdqu 0x12345678(%rip),%xmm1
|
||||||
|
movhpd %xmm1,0x12345678(%rip)
|
||||||
|
movhpd 0x12345678(%rip),%xmm1
|
||||||
|
movhps %xmm1,0x12345678(%rip)
|
||||||
|
movhps 0x12345678(%rip),%xmm1
|
||||||
|
movlpd %xmm1,0x12345678(%rip)
|
||||||
|
movlpd 0x12345678(%rip),%xmm1
|
||||||
|
movlps %xmm1,0x12345678(%rip)
|
||||||
|
movlps 0x12345678(%rip),%xmm1
|
||||||
|
movshdup 0x12345678(%rip),%xmm1
|
||||||
|
movsldup 0x12345678(%rip),%xmm1
|
||||||
|
pshufhw $0x90,0x12345678(%rip),%xmm1
|
||||||
|
pshuflw $0x90,0x12345678(%rip),%xmm1
|
||||||
|
punpcklbw 0x12345678(%rip),%mm1
|
||||||
|
punpckldq 0x12345678(%rip),%mm1
|
||||||
|
punpcklwd 0x12345678(%rip),%mm1
|
||||||
|
ucomisd 0x12345678(%rip),%xmm1
|
||||||
|
ucomiss 0x12345678(%rip),%xmm1
|
@ -1,3 +1,17 @@
|
|||||||
|
2007-06-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR binutils/4667
|
||||||
|
* i386-dis.c (EX): Removed.
|
||||||
|
(EMd): New.
|
||||||
|
(EMq): Likewise.
|
||||||
|
(EXd): Likewise.
|
||||||
|
(EXq): Likewise.
|
||||||
|
(EXx): Likewise.
|
||||||
|
(PREGRP93...PREGRP97): Likewise.
|
||||||
|
(dis386_twobyte): Updated.
|
||||||
|
(prefix_user_table): Updated. Add PREGRP93...PREGRP97.
|
||||||
|
(OP_EX): Remove Intel syntax handling.
|
||||||
|
|
||||||
2007-06-18 Nathan Sidwell <nathan@codesourcery.com>
|
2007-06-18 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
* m68k-opc.c (m68k_opcodes): Add wdebugl variants.
|
* m68k-opc.c (m68k_opcodes): Add wdebugl variants.
|
||||||
|
@ -306,7 +306,11 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
|
|||||||
#define MX { OP_MMX, 0 }
|
#define MX { OP_MMX, 0 }
|
||||||
#define XM { OP_XMM, 0 }
|
#define XM { OP_XMM, 0 }
|
||||||
#define EM { OP_EM, v_mode }
|
#define EM { OP_EM, v_mode }
|
||||||
#define EX { OP_EX, v_mode }
|
#define EMd { OP_EM, d_mode }
|
||||||
|
#define EMq { OP_EM, q_mode }
|
||||||
|
#define EXd { OP_EX, d_mode }
|
||||||
|
#define EXq { OP_EX, q_mode }
|
||||||
|
#define EXx { OP_EX, x_mode }
|
||||||
#define MS { OP_MS, v_mode }
|
#define MS { OP_MS, v_mode }
|
||||||
#define XS { OP_XS, v_mode }
|
#define XS { OP_XS, v_mode }
|
||||||
#define EMC { OP_EMC, v_mode }
|
#define EMC { OP_EMC, v_mode }
|
||||||
@ -530,6 +534,11 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
|
|||||||
#define PREGRP90 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 90 } }
|
#define PREGRP90 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 90 } }
|
||||||
#define PREGRP91 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 91 } }
|
#define PREGRP91 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 91 } }
|
||||||
#define PREGRP92 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 92 } }
|
#define PREGRP92 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 92 } }
|
||||||
|
#define PREGRP93 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 93 } }
|
||||||
|
#define PREGRP94 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 94 } }
|
||||||
|
#define PREGRP95 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 95 } }
|
||||||
|
#define PREGRP96 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 96 } }
|
||||||
|
#define PREGRP97 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 97 } }
|
||||||
|
|
||||||
|
|
||||||
#define X86_64_0 NULL, { { NULL, X86_64_SPECIAL }, { NULL, 0 } }
|
#define X86_64_0 NULL, { { NULL, X86_64_SPECIAL }, { NULL, 0 } }
|
||||||
@ -906,11 +915,11 @@ static const struct dis386 dis386_twobyte[] = {
|
|||||||
{ PREGRP8 },
|
{ PREGRP8 },
|
||||||
{ PREGRP9 },
|
{ PREGRP9 },
|
||||||
{ PREGRP30 },
|
{ PREGRP30 },
|
||||||
{ "movlpX", { EX, XM, { SIMD_Fixup, 'h' } } },
|
{ "movlpX", { EXq, XM, { SIMD_Fixup, 'h' } } },
|
||||||
{ "unpcklpX", { XM, EX } },
|
{ "unpcklpX", { XM, EXq } },
|
||||||
{ "unpckhpX", { XM, EX } },
|
{ "unpckhpX", { XM, EXq } },
|
||||||
{ PREGRP31 },
|
{ PREGRP31 },
|
||||||
{ "movhpX", { EX, XM, { SIMD_Fixup, 'l' } } },
|
{ "movhpX", { EXq, XM, { SIMD_Fixup, 'l' } } },
|
||||||
/* 18 */
|
/* 18 */
|
||||||
{ GRP16 },
|
{ GRP16 },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
@ -930,14 +939,14 @@ static const struct dis386 dis386_twobyte[] = {
|
|||||||
{ "movL", { Td, Rd } },
|
{ "movL", { Td, Rd } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
/* 28 */
|
/* 28 */
|
||||||
{ "movapX", { XM, EX } },
|
{ "movapX", { XM, EXx } },
|
||||||
{ "movapX", { EX, XM } },
|
{ "movapX", { EXx, XM } },
|
||||||
{ PREGRP2 },
|
{ PREGRP2 },
|
||||||
{ PREGRP33 },
|
{ PREGRP33 },
|
||||||
{ PREGRP4 },
|
{ PREGRP4 },
|
||||||
{ PREGRP3 },
|
{ PREGRP3 },
|
||||||
{ "ucomisX", { XM,EX } },
|
{ PREGRP93 },
|
||||||
{ "comisX", { XM,EX } },
|
{ PREGRP94 },
|
||||||
/* 30 */
|
/* 30 */
|
||||||
{ "wrmsr", { XX } },
|
{ "wrmsr", { XX } },
|
||||||
{ "rdtsc", { XX } },
|
{ "rdtsc", { XX } },
|
||||||
@ -979,10 +988,10 @@ static const struct dis386 dis386_twobyte[] = {
|
|||||||
{ PREGRP13 },
|
{ PREGRP13 },
|
||||||
{ PREGRP12 },
|
{ PREGRP12 },
|
||||||
{ PREGRP11 },
|
{ PREGRP11 },
|
||||||
{ "andpX", { XM, EX } },
|
{ "andpX", { XM, EXx } },
|
||||||
{ "andnpX", { XM, EX } },
|
{ "andnpX", { XM, EXx } },
|
||||||
{ "orpX", { XM, EX } },
|
{ "orpX", { XM, EXx } },
|
||||||
{ "xorpX", { XM, EX } },
|
{ "xorpX", { XM, EXx } },
|
||||||
/* 58 */
|
/* 58 */
|
||||||
{ PREGRP0 },
|
{ PREGRP0 },
|
||||||
{ PREGRP10 },
|
{ PREGRP10 },
|
||||||
@ -993,9 +1002,9 @@ static const struct dis386 dis386_twobyte[] = {
|
|||||||
{ PREGRP5 },
|
{ PREGRP5 },
|
||||||
{ PREGRP6 },
|
{ PREGRP6 },
|
||||||
/* 60 */
|
/* 60 */
|
||||||
{ "punpcklbw", { MX, EM } },
|
{ PREGRP95 },
|
||||||
{ "punpcklwd", { MX, EM } },
|
{ PREGRP96 },
|
||||||
{ "punpckldq", { MX, EM } },
|
{ PREGRP97 },
|
||||||
{ "packsswb", { MX, EM } },
|
{ "packsswb", { MX, EM } },
|
||||||
{ "pcmpgtb", { MX, EM } },
|
{ "pcmpgtb", { MX, EM } },
|
||||||
{ "pcmpgtw", { MX, EM } },
|
{ "pcmpgtw", { MX, EM } },
|
||||||
@ -1107,7 +1116,7 @@ static const struct dis386 dis386_twobyte[] = {
|
|||||||
{ "movntiS", { Ev, Gv } },
|
{ "movntiS", { Ev, Gv } },
|
||||||
{ "pinsrw", { MX, Edqw, Ib } },
|
{ "pinsrw", { MX, Edqw, Ib } },
|
||||||
{ "pextrw", { Gdq, MS, Ib } },
|
{ "pextrw", { Gdq, MS, Ib } },
|
||||||
{ "shufpX", { XM, EX, Ib } },
|
{ "shufpX", { XM, EXx, Ib } },
|
||||||
{ GRP9 },
|
{ GRP9 },
|
||||||
/* c8 */
|
/* c8 */
|
||||||
{ "bswap", { RMeAX } },
|
{ "bswap", { RMeAX } },
|
||||||
@ -1828,17 +1837,17 @@ static const struct dis386 grps[][8] = {
|
|||||||
static const struct dis386 prefix_user_table[][4] = {
|
static const struct dis386 prefix_user_table[][4] = {
|
||||||
/* PREGRP0 */
|
/* PREGRP0 */
|
||||||
{
|
{
|
||||||
{ "addps", { XM, EX } },
|
{ "addps", { XM, EXx } },
|
||||||
{ "addss", { XM, EX } },
|
{ "addss", { XM, EXd } },
|
||||||
{ "addpd", { XM, EX } },
|
{ "addpd", { XM, EXx } },
|
||||||
{ "addsd", { XM, EX } },
|
{ "addsd", { XM, EXq } },
|
||||||
},
|
},
|
||||||
/* PREGRP1 */
|
/* PREGRP1 */
|
||||||
{
|
{
|
||||||
{ "", { XM, EX, OPSIMD } }, /* See OP_SIMD_SUFFIX. */
|
{ "", { XM, EXx, OPSIMD } }, /* See OP_SIMD_SUFFIX. */
|
||||||
{ "", { XM, EX, OPSIMD } },
|
{ "", { XM, EXx, OPSIMD } },
|
||||||
{ "", { XM, EX, OPSIMD } },
|
{ "", { XM, EXx, OPSIMD } },
|
||||||
{ "", { XM, EX, OPSIMD } },
|
{ "", { XM, EXx, OPSIMD } },
|
||||||
},
|
},
|
||||||
/* PREGRP2 */
|
/* PREGRP2 */
|
||||||
{
|
{
|
||||||
@ -1849,157 +1858,157 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
},
|
},
|
||||||
/* PREGRP3 */
|
/* PREGRP3 */
|
||||||
{
|
{
|
||||||
{ "cvtps2pi", { MXC, EX } },
|
{ "cvtps2pi", { MXC, EXx } },
|
||||||
{ "cvtss2siY", { Gv, EX } },
|
{ "cvtss2siY", { Gv, EXx } },
|
||||||
{ "cvtpd2pi", { MXC, EX } },
|
{ "cvtpd2pi", { MXC, EXx } },
|
||||||
{ "cvtsd2siY", { Gv, EX } },
|
{ "cvtsd2siY", { Gv, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP4 */
|
/* PREGRP4 */
|
||||||
{
|
{
|
||||||
{ "cvttps2pi", { MXC, EX } },
|
{ "cvttps2pi", { MXC, EXx } },
|
||||||
{ "cvttss2siY", { Gv, EX } },
|
{ "cvttss2siY", { Gv, EXx } },
|
||||||
{ "cvttpd2pi", { MXC, EX } },
|
{ "cvttpd2pi", { MXC, EXx } },
|
||||||
{ "cvttsd2siY", { Gv, EX } },
|
{ "cvttsd2siY", { Gv, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP5 */
|
/* PREGRP5 */
|
||||||
{
|
{
|
||||||
{ "divps", { XM, EX } },
|
{ "divps", { XM, EXx } },
|
||||||
{ "divss", { XM, EX } },
|
{ "divss", { XM, EXx } },
|
||||||
{ "divpd", { XM, EX } },
|
{ "divpd", { XM, EXx } },
|
||||||
{ "divsd", { XM, EX } },
|
{ "divsd", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP6 */
|
/* PREGRP6 */
|
||||||
{
|
{
|
||||||
{ "maxps", { XM, EX } },
|
{ "maxps", { XM, EXx } },
|
||||||
{ "maxss", { XM, EX } },
|
{ "maxss", { XM, EXx } },
|
||||||
{ "maxpd", { XM, EX } },
|
{ "maxpd", { XM, EXx } },
|
||||||
{ "maxsd", { XM, EX } },
|
{ "maxsd", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP7 */
|
/* PREGRP7 */
|
||||||
{
|
{
|
||||||
{ "minps", { XM, EX } },
|
{ "minps", { XM, EXx } },
|
||||||
{ "minss", { XM, EX } },
|
{ "minss", { XM, EXx } },
|
||||||
{ "minpd", { XM, EX } },
|
{ "minpd", { XM, EXx } },
|
||||||
{ "minsd", { XM, EX } },
|
{ "minsd", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP8 */
|
/* PREGRP8 */
|
||||||
{
|
{
|
||||||
{ "movups", { XM, EX } },
|
{ "movups", { XM, EXx } },
|
||||||
{ "movss", { XM, EX } },
|
{ "movss", { XM, EXx } },
|
||||||
{ "movupd", { XM, EX } },
|
{ "movupd", { XM, EXx } },
|
||||||
{ "movsd", { XM, EX } },
|
{ "movsd", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP9 */
|
/* PREGRP9 */
|
||||||
{
|
{
|
||||||
{ "movups", { EX, XM } },
|
{ "movups", { EXx, XM } },
|
||||||
{ "movss", { EX, XM } },
|
{ "movss", { EXx, XM } },
|
||||||
{ "movupd", { EX, XM } },
|
{ "movupd", { EXx, XM } },
|
||||||
{ "movsd", { EX, XM } },
|
{ "movsd", { EXx, XM } },
|
||||||
},
|
},
|
||||||
/* PREGRP10 */
|
/* PREGRP10 */
|
||||||
{
|
{
|
||||||
{ "mulps", { XM, EX } },
|
{ "mulps", { XM, EXx } },
|
||||||
{ "mulss", { XM, EX } },
|
{ "mulss", { XM, EXx } },
|
||||||
{ "mulpd", { XM, EX } },
|
{ "mulpd", { XM, EXx } },
|
||||||
{ "mulsd", { XM, EX } },
|
{ "mulsd", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP11 */
|
/* PREGRP11 */
|
||||||
{
|
{
|
||||||
{ "rcpps", { XM, EX } },
|
{ "rcpps", { XM, EXx } },
|
||||||
{ "rcpss", { XM, EX } },
|
{ "rcpss", { XM, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP12 */
|
/* PREGRP12 */
|
||||||
{
|
{
|
||||||
{ "rsqrtps",{ XM, EX } },
|
{ "rsqrtps",{ XM, EXx } },
|
||||||
{ "rsqrtss",{ XM, EX } },
|
{ "rsqrtss",{ XM, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP13 */
|
/* PREGRP13 */
|
||||||
{
|
{
|
||||||
{ "sqrtps", { XM, EX } },
|
{ "sqrtps", { XM, EXx } },
|
||||||
{ "sqrtss", { XM, EX } },
|
{ "sqrtss", { XM, EXx } },
|
||||||
{ "sqrtpd", { XM, EX } },
|
{ "sqrtpd", { XM, EXx } },
|
||||||
{ "sqrtsd", { XM, EX } },
|
{ "sqrtsd", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP14 */
|
/* PREGRP14 */
|
||||||
{
|
{
|
||||||
{ "subps", { XM, EX } },
|
{ "subps", { XM, EXx } },
|
||||||
{ "subss", { XM, EX } },
|
{ "subss", { XM, EXx } },
|
||||||
{ "subpd", { XM, EX } },
|
{ "subpd", { XM, EXx } },
|
||||||
{ "subsd", { XM, EX } },
|
{ "subsd", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP15 */
|
/* PREGRP15 */
|
||||||
{
|
{
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "cvtdq2pd", { XM, EX } },
|
{ "cvtdq2pd", { XM, EXq } },
|
||||||
{ "cvttpd2dq", { XM, EX } },
|
{ "cvttpd2dq", { XM, EXx } },
|
||||||
{ "cvtpd2dq", { XM, EX } },
|
{ "cvtpd2dq", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP16 */
|
/* PREGRP16 */
|
||||||
{
|
{
|
||||||
{ "cvtdq2ps", { XM, EX } },
|
{ "cvtdq2ps", { XM, EXx } },
|
||||||
{ "cvttps2dq", { XM, EX } },
|
{ "cvttps2dq", { XM, EXx } },
|
||||||
{ "cvtps2dq", { XM, EX } },
|
{ "cvtps2dq", { XM, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP17 */
|
/* PREGRP17 */
|
||||||
{
|
{
|
||||||
{ "cvtps2pd", { XM, EX } },
|
{ "cvtps2pd", { XM, EXq } },
|
||||||
{ "cvtss2sd", { XM, EX } },
|
{ "cvtss2sd", { XM, EXx } },
|
||||||
{ "cvtpd2ps", { XM, EX } },
|
{ "cvtpd2ps", { XM, EXx } },
|
||||||
{ "cvtsd2ss", { XM, EX } },
|
{ "cvtsd2ss", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP18 */
|
/* PREGRP18 */
|
||||||
{
|
{
|
||||||
{ "maskmovq", { MX, MS } },
|
{ "maskmovq", { MX, MS } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "maskmovdqu", { XM, XS } },
|
{ "maskmovdqu", { XM, XS } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP19 */
|
/* PREGRP19 */
|
||||||
{
|
{
|
||||||
{ "movq", { MX, EM } },
|
{ "movq", { MX, EM } },
|
||||||
{ "movdqu", { XM, EX } },
|
{ "movdqu", { XM, EXx } },
|
||||||
{ "movdqa", { XM, EX } },
|
{ "movdqa", { XM, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP20 */
|
/* PREGRP20 */
|
||||||
{
|
{
|
||||||
{ "movq", { EM, MX } },
|
{ "movq", { EM, MX } },
|
||||||
{ "movdqu", { EX, XM } },
|
{ "movdqu", { EXx, XM } },
|
||||||
{ "movdqa", { EX, XM } },
|
{ "movdqa", { EXx, XM } },
|
||||||
{ "(bad)", { EX, XM } },
|
{ "(bad)", { EXx, XM } },
|
||||||
},
|
},
|
||||||
/* PREGRP21 */
|
/* PREGRP21 */
|
||||||
{
|
{
|
||||||
{ "(bad)", { EX, XM } },
|
{ "(bad)", { EXx, XM } },
|
||||||
{ "movq2dq",{ XM, MS } },
|
{ "movq2dq",{ XM, MS } },
|
||||||
{ "movq", { EX, XM } },
|
{ "movq", { EXx, XM } },
|
||||||
{ "movdq2q",{ MX, XS } },
|
{ "movdq2q",{ MX, XS } },
|
||||||
},
|
},
|
||||||
/* PREGRP22 */
|
/* PREGRP22 */
|
||||||
{
|
{
|
||||||
{ "pshufw", { MX, EM, Ib } },
|
{ "pshufw", { MX, EM, Ib } },
|
||||||
{ "pshufhw",{ XM, EX, Ib } },
|
{ "pshufhw",{ XM, EXx, Ib } },
|
||||||
{ "pshufd", { XM, EX, Ib } },
|
{ "pshufd", { XM, EXx, Ib } },
|
||||||
{ "pshuflw",{ XM, EX, Ib } },
|
{ "pshuflw",{ XM, EXx, Ib } },
|
||||||
},
|
},
|
||||||
/* PREGRP23 */
|
/* PREGRP23 */
|
||||||
{
|
{
|
||||||
{ "movd", { Edq, MX } },
|
{ "movd", { Edq, MX } },
|
||||||
{ "movq", { XM, EX } },
|
{ "movq", { XM, EXx } },
|
||||||
{ "movd", { Edq, XM } },
|
{ "movd", { Edq, XM } },
|
||||||
{ "(bad)", { Ed, XM } },
|
{ "(bad)", { Ed, XM } },
|
||||||
},
|
},
|
||||||
/* PREGRP24 */
|
/* PREGRP24 */
|
||||||
{
|
{
|
||||||
{ "(bad)", { MX, EX } },
|
{ "(bad)", { MX, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "punpckhqdq", { XM, EX } },
|
{ "punpckhqdq", { XM, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP25 */
|
/* PREGRP25 */
|
||||||
{
|
{
|
||||||
@ -2010,51 +2019,51 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
},
|
},
|
||||||
/* PREGRP26 */
|
/* PREGRP26 */
|
||||||
{
|
{
|
||||||
{ "(bad)", { MX, EX } },
|
{ "(bad)", { MX, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "punpcklqdq", { XM, EX } },
|
{ "punpcklqdq", { XM, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP27 */
|
/* PREGRP27 */
|
||||||
{
|
{
|
||||||
{ "(bad)", { MX, EX } },
|
{ "(bad)", { MX, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "addsubpd", { XM, EX } },
|
{ "addsubpd", { XM, EXx } },
|
||||||
{ "addsubps", { XM, EX } },
|
{ "addsubps", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP28 */
|
/* PREGRP28 */
|
||||||
{
|
{
|
||||||
{ "(bad)", { MX, EX } },
|
{ "(bad)", { MX, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "haddpd", { XM, EX } },
|
{ "haddpd", { XM, EXx } },
|
||||||
{ "haddps", { XM, EX } },
|
{ "haddps", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP29 */
|
/* PREGRP29 */
|
||||||
{
|
{
|
||||||
{ "(bad)", { MX, EX } },
|
{ "(bad)", { MX, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "hsubpd", { XM, EX } },
|
{ "hsubpd", { XM, EXx } },
|
||||||
{ "hsubps", { XM, EX } },
|
{ "hsubps", { XM, EXx } },
|
||||||
},
|
},
|
||||||
/* PREGRP30 */
|
/* PREGRP30 */
|
||||||
{
|
{
|
||||||
{ "movlpX", { XM, EX, { SIMD_Fixup, 'h' } } }, /* really only 2 operands */
|
{ "movlpX", { XM, EXq, { SIMD_Fixup, 'h' } } }, /* really only 2 operands */
|
||||||
{ "movsldup", { XM, EX } },
|
{ "movsldup", { XM, EXx } },
|
||||||
{ "movlpd", { XM, EX } },
|
{ "movlpd", { XM, EXq } },
|
||||||
{ "movddup", { XM, EX } },
|
{ "movddup", { XM, EXq } },
|
||||||
},
|
},
|
||||||
/* PREGRP31 */
|
/* PREGRP31 */
|
||||||
{
|
{
|
||||||
{ "movhpX", { XM, EX, { SIMD_Fixup, 'l' } } },
|
{ "movhpX", { XM, EXq, { SIMD_Fixup, 'l' } } },
|
||||||
{ "movshdup", { XM, EX } },
|
{ "movshdup", { XM, EXx } },
|
||||||
{ "movhpd", { XM, EX } },
|
{ "movhpd", { XM, EXq } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXq } },
|
||||||
},
|
},
|
||||||
/* PREGRP32 */
|
/* PREGRP32 */
|
||||||
{
|
{
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "(bad)", { XM, EX } },
|
{ "(bad)", { XM, EXx } },
|
||||||
{ "lddqu", { XM, M } },
|
{ "lddqu", { XM, M } },
|
||||||
},
|
},
|
||||||
/* PREGRP33 */
|
/* PREGRP33 */
|
||||||
@ -2109,7 +2118,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pblendvb", {XM, EX, XMM0 } },
|
{ "pblendvb", {XM, EXx, XMM0 } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2117,7 +2126,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "blendvps", {XM, EX, XMM0 } },
|
{ "blendvps", {XM, EXx, XMM0 } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2125,7 +2134,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "blendvpd", { XM, EX, XMM0 } },
|
{ "blendvpd", { XM, EXx, XMM0 } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2133,7 +2142,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "ptest", { XM, EX } },
|
{ "ptest", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2141,7 +2150,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovsxbw", { XM, EX } },
|
{ "pmovsxbw", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2149,7 +2158,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovsxbd", { XM, EX } },
|
{ "pmovsxbd", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2157,7 +2166,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovsxbq", { XM, EX } },
|
{ "pmovsxbq", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2165,7 +2174,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovsxwd", { XM, EX } },
|
{ "pmovsxwd", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2173,7 +2182,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovsxwq", { XM, EX } },
|
{ "pmovsxwq", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2181,7 +2190,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovsxdq", { XM, EX } },
|
{ "pmovsxdq", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2189,7 +2198,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmuldq", { XM, EX } },
|
{ "pmuldq", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2197,7 +2206,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pcmpeqq", { XM, EX } },
|
{ "pcmpeqq", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2213,7 +2222,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "packusdw", { XM, EX } },
|
{ "packusdw", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2221,7 +2230,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovzxbw", { XM, EX } },
|
{ "pmovzxbw", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2229,7 +2238,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovzxbd", { XM, EX } },
|
{ "pmovzxbd", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2237,7 +2246,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovzxbq", { XM, EX } },
|
{ "pmovzxbq", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2245,7 +2254,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovzxwd", { XM, EX } },
|
{ "pmovzxwd", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2253,7 +2262,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovzxwq", { XM, EX } },
|
{ "pmovzxwq", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2261,7 +2270,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmovzxdq", { XM, EX } },
|
{ "pmovzxdq", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2269,7 +2278,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pminsb", { XM, EX } },
|
{ "pminsb", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2277,7 +2286,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pminsd", { XM, EX } },
|
{ "pminsd", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2285,7 +2294,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pminuw", { XM, EX } },
|
{ "pminuw", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2293,7 +2302,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pminud", { XM, EX } },
|
{ "pminud", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2301,7 +2310,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmaxsb", { XM, EX } },
|
{ "pmaxsb", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2309,7 +2318,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmaxsd", { XM, EX } },
|
{ "pmaxsd", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2317,7 +2326,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmaxuw", { XM, EX } },
|
{ "pmaxuw", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2325,7 +2334,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmaxud", { XM, EX } },
|
{ "pmaxud", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2333,7 +2342,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pmulld", { XM, EX } },
|
{ "pmulld", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2341,7 +2350,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "phminposuw", { XM, EX } },
|
{ "phminposuw", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2349,7 +2358,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "roundps", { XM, EX, Ib } },
|
{ "roundps", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2357,7 +2366,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "roundpd", { XM, EX, Ib } },
|
{ "roundpd", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2365,7 +2374,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "roundss", { XM, EX, Ib } },
|
{ "roundss", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2373,7 +2382,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "roundsd", { XM, EX, Ib } },
|
{ "roundsd", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2381,7 +2390,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "blendps", { XM, EX, Ib } },
|
{ "blendps", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2389,7 +2398,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "blendpd", { XM, EX, Ib } },
|
{ "blendpd", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2397,7 +2406,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pblendw", { XM, EX, Ib } },
|
{ "pblendw", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2445,7 +2454,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "insertps", { XM, EX, Ib } },
|
{ "insertps", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2461,7 +2470,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "dpps", { XM, EX, Ib } },
|
{ "dpps", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2469,7 +2478,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "dppd", { XM, EX, Ib } },
|
{ "dppd", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2477,7 +2486,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "mpsadbw", { XM, EX, Ib } },
|
{ "mpsadbw", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2485,7 +2494,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pcmpgtq", { XM, EX } },
|
{ "pcmpgtq", { XM, EXx } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2509,7 +2518,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pcmpestrm", { XM, EX, Ib } },
|
{ "pcmpestrm", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2517,7 +2526,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pcmpestri", { XM, EX, Ib } },
|
{ "pcmpestri", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2525,7 +2534,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pcmpistrm", { XM, EX, Ib } },
|
{ "pcmpistrm", { XM, EXx, Ib } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2533,7 +2542,47 @@ static const struct dis386 prefix_user_table[][4] = {
|
|||||||
{
|
{
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
{ "pcmpistri", { XM, EX, Ib } },
|
{ "pcmpistri", { XM, EXx, Ib } },
|
||||||
|
{ "(bad)", { XX } },
|
||||||
|
},
|
||||||
|
|
||||||
|
/* PREGRP93 */
|
||||||
|
{
|
||||||
|
{ "ucomiss",{ XM, EXd } },
|
||||||
|
{ "(bad)", { XX } },
|
||||||
|
{ "ucomisd",{ XM, EXq } },
|
||||||
|
{ "(bad)", { XX } },
|
||||||
|
},
|
||||||
|
|
||||||
|
/* PREGRP94 */
|
||||||
|
{
|
||||||
|
{ "comiss", { XM, EXd } },
|
||||||
|
{ "(bad)", { XX } },
|
||||||
|
{ "comisd", { XM, EXq } },
|
||||||
|
{ "(bad)", { XX } },
|
||||||
|
},
|
||||||
|
|
||||||
|
/* PREGRP95 */
|
||||||
|
{
|
||||||
|
{ "punpcklbw",{ MX, EMd } },
|
||||||
|
{ "(bad)", { XX } },
|
||||||
|
{ "punpcklbw",{ MX, EMq } },
|
||||||
|
{ "(bad)", { XX } },
|
||||||
|
},
|
||||||
|
|
||||||
|
/* PREGRP96 */
|
||||||
|
{
|
||||||
|
{ "punpcklwd",{ MX, EMd } },
|
||||||
|
{ "(bad)", { XX } },
|
||||||
|
{ "punpcklwd",{ MX, EMq } },
|
||||||
|
{ "(bad)", { XX } },
|
||||||
|
},
|
||||||
|
|
||||||
|
/* PREGRP97 */
|
||||||
|
{
|
||||||
|
{ "punpckldq",{ MX, EMd } },
|
||||||
|
{ "(bad)", { XX } },
|
||||||
|
{ "punpckldq",{ MX, EMq } },
|
||||||
{ "(bad)", { XX } },
|
{ "(bad)", { XX } },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@ -5798,17 +5847,6 @@ OP_EX (int bytemode, int sizeflag)
|
|||||||
int add = 0;
|
int add = 0;
|
||||||
if (modrm.mod != 3)
|
if (modrm.mod != 3)
|
||||||
{
|
{
|
||||||
if (intel_syntax && bytemode == v_mode)
|
|
||||||
{
|
|
||||||
switch (prefixes & (PREFIX_DATA|PREFIX_REPZ|PREFIX_REPNZ))
|
|
||||||
{
|
|
||||||
case 0: bytemode = x_mode; break;
|
|
||||||
case PREFIX_REPZ: bytemode = d_mode; used_prefixes |= PREFIX_REPZ; break;
|
|
||||||
case PREFIX_DATA: bytemode = x_mode; used_prefixes |= PREFIX_DATA; break;
|
|
||||||
case PREFIX_REPNZ: bytemode = q_mode; used_prefixes |= PREFIX_REPNZ; break;
|
|
||||||
default: bytemode = 0; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OP_E (bytemode, sizeflag);
|
OP_E (bytemode, sizeflag);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user