diff options
-rw-r--r-- | gas/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/simd-intel.d | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/simd.d | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/simd.s | 9 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-simd-intel.d | 74 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-simd.d | 74 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-simd.s | 9 | ||||
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 4 |
9 files changed, 133 insertions, 68 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index b097e1c..dbf13ee 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2007-10-04 H.J. Lu <hongjiu.lu@intel.com> + + * gas/i386/simd.s: Add tests for unpckhpd and unpckhps. + * gas/i386/x86-64-simd.s: Likewise. + + * gas/i386/simd-intel.d: Updated. + * gas/i386/simd.d: Likewise. + * gas/i386/x86-64-simd-intel.d: Likewise. + * gas/i386/x86-64-simd.d: Likewise. + 2007-10-04 David Daney <ddaney@avtrex.com> * gas/mips/odd-float.d, gas/mips/odd-float.s: New test. diff --git a/gas/testsuite/gas/i386/simd-intel.d b/gas/testsuite/gas/i386/simd-intel.d index a8503a4..9e3a080 100644 --- a/gas/testsuite/gas/i386/simd-intel.d +++ b/gas/testsuite/gas/i386/simd-intel.d @@ -85,6 +85,10 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 38 34 00 pmovzxwq xmm0,DWORD PTR \[eax\] [ ]*[a-f0-9]+: 66 0f 38 35 00 pmovzxdq xmm0,QWORD PTR \[eax\] [ ]*[a-f0-9]+: 66 0f 3a 21 00 00 insertps xmm0,DWORD PTR \[eax\],0x0 +[ ]*[a-f0-9]+: 66 0f 15 08 unpckhpd xmm1,XMMWORD PTR \[eax\] +[ ]*[a-f0-9]+: 0f 15 08 unpckhps xmm1,XMMWORD PTR \[eax\] +[ ]*[a-f0-9]+: 66 0f 14 08 unpcklpd xmm1,XMMWORD PTR \[eax\] +[ ]*[a-f0-9]+: 0f 14 08 unpcklps xmm1,XMMWORD PTR \[eax\] [ ]*[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 @@ -162,4 +166,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 38 34 00 pmovzxwq xmm0,DWORD PTR \[eax\] [ ]*[a-f0-9]+: 66 0f 38 35 00 pmovzxdq xmm0,QWORD PTR \[eax\] [ ]*[a-f0-9]+: 66 0f 3a 21 00 00 insertps xmm0,DWORD PTR \[eax\],0x0 +[ ]*[a-f0-9]+: 66 0f 15 00 unpckhpd xmm0,XMMWORD PTR \[eax\] +[ ]*[a-f0-9]+: 0f 15 00 unpckhps xmm0,XMMWORD PTR \[eax\] +[ ]*[a-f0-9]+: 66 0f 14 00 unpcklpd xmm0,XMMWORD PTR \[eax\] +[ ]*[a-f0-9]+: 0f 14 00 unpcklps xmm0,XMMWORD PTR \[eax\] #pass diff --git a/gas/testsuite/gas/i386/simd.d b/gas/testsuite/gas/i386/simd.d index 1e76bb1..d16d3c5 100644 --- a/gas/testsuite/gas/i386/simd.d +++ b/gas/testsuite/gas/i386/simd.d @@ -84,6 +84,10 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 38 34 00 pmovzxwq \(%eax\),%xmm0 [ ]*[a-f0-9]+: 66 0f 38 35 00 pmovzxdq \(%eax\),%xmm0 [ ]*[a-f0-9]+: 66 0f 3a 21 00 00 insertps \$0x0,\(%eax\),%xmm0 +[ ]*[a-f0-9]+: 66 0f 15 08 unpckhpd \(%eax\),%xmm1 +[ ]*[a-f0-9]+: 0f 15 08 unpckhps \(%eax\),%xmm1 +[ ]*[a-f0-9]+: 66 0f 14 08 unpcklpd \(%eax\),%xmm1 +[ ]*[a-f0-9]+: 0f 14 08 unpcklps \(%eax\),%xmm1 [ ]*[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 @@ -161,4 +165,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 38 34 00 pmovzxwq \(%eax\),%xmm0 [ ]*[a-f0-9]+: 66 0f 38 35 00 pmovzxdq \(%eax\),%xmm0 [ ]*[a-f0-9]+: 66 0f 3a 21 00 00 insertps \$0x0,\(%eax\),%xmm0 +[ ]*[a-f0-9]+: 66 0f 15 00 unpckhpd \(%eax\),%xmm0 +[ ]*[a-f0-9]+: 0f 15 00 unpckhps \(%eax\),%xmm0 +[ ]*[a-f0-9]+: 66 0f 14 00 unpcklpd \(%eax\),%xmm0 +[ ]*[a-f0-9]+: 0f 14 00 unpcklps \(%eax\),%xmm0 #pass diff --git a/gas/testsuite/gas/i386/simd.s b/gas/testsuite/gas/i386/simd.s index b600a6d..dc7bae1 100644 --- a/gas/testsuite/gas/i386/simd.s +++ b/gas/testsuite/gas/i386/simd.s @@ -80,6 +80,11 @@ _start: pmovzxdq (%eax),%xmm0 insertps $0x0,(%eax),%xmm0 + unpckhpd (%eax),%xmm1 + unpckhps (%eax),%xmm1 + unpcklpd (%eax),%xmm1 + unpcklps (%eax),%xmm1 + .intel_syntax noprefix addsubps xmm1,XMMWORD PTR ds:0x12345678 @@ -159,3 +164,7 @@ pmovzxwd xmm0,QWORD PTR [eax] pmovzxwq xmm0,DWORD PTR [eax] pmovzxdq xmm0,QWORD PTR [eax] insertps xmm0,DWORD PTR [eax],0x0 +unpckhpd xmm0,XMMWORD PTR [eax] +unpckhps xmm0,XMMWORD PTR [eax] +unpcklpd xmm0,XMMWORD PTR [eax] +unpcklps xmm0,XMMWORD PTR [eax] diff --git a/gas/testsuite/gas/i386/x86-64-simd-intel.d b/gas/testsuite/gas/i386/x86-64-simd-intel.d index 89d0b27..dea1fc0 100644 --- a/gas/testsuite/gas/i386/x86-64-simd-intel.d +++ b/gas/testsuite/gas/i386/x86-64-simd-intel.d @@ -91,39 +91,43 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 38 34 00 pmovzxwq xmm0,DWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 0f 38 35 00 pmovzxdq xmm0,QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 0f 3a 21 00 00 insertps xmm0,DWORD PTR \[rax\],0x0 -[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234585e <_start\+0x1234585e> -[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345866 <_start\+0x12345866> -[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss xmm1,DWORD PTR \[rip\+0x12345678\] # 1234586d <_start\+0x1234586d> -[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345875 <_start\+0x12345875> -[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234587d <_start\+0x1234587d> -[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345884 <_start\+0x12345884> -[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234588c <_start\+0x1234588c> -[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345894 <_start\+0x12345894> -[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu XMMWORD PTR \[rip\+0x12345678\],xmm1 # 1234589c <_start\+0x1234589c> -[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123458a4 <_start\+0x123458a4> -[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd QWORD PTR \[rip\+0x12345678\],xmm1 # 123458ac <_start\+0x123458ac> -[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd xmm1,QWORD PTR \[rip\+0x12345678\] # 123458b4 <_start\+0x123458b4> -[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps QWORD PTR \[rip\+0x12345678\],xmm1 # 123458bb <_start\+0x123458bb> -[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps xmm1,QWORD PTR \[rip\+0x12345678\] # 123458c2 <_start\+0x123458c2> -[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd QWORD PTR \[rip\+0x12345678\],xmm1 # 123458ca <_start\+0x123458ca> -[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd xmm1,QWORD PTR \[rip\+0x12345678\] # 123458d2 <_start\+0x123458d2> -[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps QWORD PTR \[rip\+0x12345678\],xmm1 # 123458d9 <_start\+0x123458d9> -[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps xmm1,QWORD PTR \[rip\+0x12345678\] # 123458e0 <_start\+0x123458e0> -[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq QWORD PTR \[rip\+0x12345678\],xmm1 # 123458e8 <_start\+0x123458e8> -[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq xmm1,QWORD PTR \[rip\+0x12345678\] # 123458f0 <_start\+0x123458f0> -[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123458f8 <_start\+0x123458f8> -[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345900 <_start\+0x12345900> -[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 12345909 <_start\+0x12345909> -[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 12345912 <_start\+0x12345912> -[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw mm1,DWORD PTR \[rip\+0x12345678\] # 12345919 <_start\+0x12345919> -[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq mm1,DWORD PTR \[rip\+0x12345678\] # 12345920 <_start\+0x12345920> -[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd mm1,DWORD PTR \[rip\+0x12345678\] # 12345927 <_start\+0x12345927> -[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234592f <_start\+0x1234592f> -[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345937 <_start\+0x12345937> -[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234593f <_start\+0x1234593f> -[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345947 <_start\+0x12345947> -[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd xmm1,QWORD PTR \[rip\+0x12345678\] # 1234594f <_start\+0x1234594f> -[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss xmm1,DWORD PTR \[rip\+0x12345678\] # 12345956 <_start\+0x12345956> +[ ]*[a-f0-9]+: 66 0f 15 08 unpckhpd xmm1,XMMWORD PTR \[rax\] +[ ]*[a-f0-9]+: 0f 15 08 unpckhps xmm1,XMMWORD PTR \[rax\] +[ ]*[a-f0-9]+: 66 0f 14 08 unpcklpd xmm1,XMMWORD PTR \[rax\] +[ ]*[a-f0-9]+: 0f 14 08 unpcklps xmm1,XMMWORD PTR \[rax\] +[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234586c <_start\+0x1234586c> +[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345874 <_start\+0x12345874> +[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss xmm1,DWORD PTR \[rip\+0x12345678\] # 1234587b <_start\+0x1234587b> +[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345883 <_start\+0x12345883> +[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234588b <_start\+0x1234588b> +[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345892 <_start\+0x12345892> +[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234589a <_start\+0x1234589a> +[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123458a2 <_start\+0x123458a2> +[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu XMMWORD PTR \[rip\+0x12345678\],xmm1 # 123458aa <_start\+0x123458aa> +[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123458b2 <_start\+0x123458b2> +[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd QWORD PTR \[rip\+0x12345678\],xmm1 # 123458ba <_start\+0x123458ba> +[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd xmm1,QWORD PTR \[rip\+0x12345678\] # 123458c2 <_start\+0x123458c2> +[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps QWORD PTR \[rip\+0x12345678\],xmm1 # 123458c9 <_start\+0x123458c9> +[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps xmm1,QWORD PTR \[rip\+0x12345678\] # 123458d0 <_start\+0x123458d0> +[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd QWORD PTR \[rip\+0x12345678\],xmm1 # 123458d8 <_start\+0x123458d8> +[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd xmm1,QWORD PTR \[rip\+0x12345678\] # 123458e0 <_start\+0x123458e0> +[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps QWORD PTR \[rip\+0x12345678\],xmm1 # 123458e7 <_start\+0x123458e7> +[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps xmm1,QWORD PTR \[rip\+0x12345678\] # 123458ee <_start\+0x123458ee> +[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq QWORD PTR \[rip\+0x12345678\],xmm1 # 123458f6 <_start\+0x123458f6> +[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq xmm1,QWORD PTR \[rip\+0x12345678\] # 123458fe <_start\+0x123458fe> +[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345906 <_start\+0x12345906> +[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234590e <_start\+0x1234590e> +[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 12345917 <_start\+0x12345917> +[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 12345920 <_start\+0x12345920> +[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw mm1,DWORD PTR \[rip\+0x12345678\] # 12345927 <_start\+0x12345927> +[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq mm1,DWORD PTR \[rip\+0x12345678\] # 1234592e <_start\+0x1234592e> +[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd mm1,DWORD PTR \[rip\+0x12345678\] # 12345935 <_start\+0x12345935> +[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234593d <_start\+0x1234593d> +[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345945 <_start\+0x12345945> +[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234594d <_start\+0x1234594d> +[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345955 <_start\+0x12345955> +[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd xmm1,QWORD PTR \[rip\+0x12345678\] # 1234595d <_start\+0x1234595d> +[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss xmm1,DWORD PTR \[rip\+0x12345678\] # 12345964 <_start\+0x12345964> [ ]*[a-f0-9]+: f2 0f c2 00 00 cmpeqsd xmm0,QWORD PTR \[rax\] [ ]*[a-f0-9]+: f3 0f c2 00 00 cmpeqss xmm0,DWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 0f 2a 00 cvtpi2pd xmm0,QWORD PTR \[rax\] @@ -174,4 +178,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 38 34 00 pmovzxwq xmm0,DWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 0f 38 35 00 pmovzxdq xmm0,QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 0f 3a 21 00 00 insertps xmm0,DWORD PTR \[rax\],0x0 +[ ]*[a-f0-9]+: 66 0f 15 00 unpckhpd xmm0,XMMWORD PTR \[rax\] +[ ]*[a-f0-9]+: 0f 15 00 unpckhps xmm0,XMMWORD PTR \[rax\] +[ ]*[a-f0-9]+: 66 0f 14 00 unpcklpd xmm0,XMMWORD PTR \[rax\] +[ ]*[a-f0-9]+: 0f 14 00 unpcklps xmm0,XMMWORD PTR \[rax\] #pass diff --git a/gas/testsuite/gas/i386/x86-64-simd.d b/gas/testsuite/gas/i386/x86-64-simd.d index 3ff0385..9d6d2dc 100644 --- a/gas/testsuite/gas/i386/x86-64-simd.d +++ b/gas/testsuite/gas/i386/x86-64-simd.d @@ -90,39 +90,43 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 38 34 00 pmovzxwq \(%rax\),%xmm0 [ ]*[a-f0-9]+: 66 0f 38 35 00 pmovzxdq \(%rax\),%xmm0 [ ]*[a-f0-9]+: 66 0f 3a 21 00 00 insertps \$0x0,\(%rax\),%xmm0 -[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps 0x12345678\(%rip\),%xmm1 # 1234585e <_start\+0x1234585e> -[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd 0x12345678\(%rip\),%xmm1 # 12345866 <_start\+0x12345866> -[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss 0x12345678\(%rip\),%xmm1 # 1234586d <_start\+0x1234586d> -[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd 0x12345678\(%rip\),%xmm1 # 12345875 <_start\+0x12345875> -[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq 0x12345678\(%rip\),%xmm1 # 1234587d <_start\+0x1234587d> -[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd 0x12345678\(%rip\),%xmm1 # 12345884 <_start\+0x12345884> -[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq 0x12345678\(%rip\),%xmm1 # 1234588c <_start\+0x1234588c> -[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1 # 12345894 <_start\+0x12345894> -[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\) # 1234589c <_start\+0x1234589c> -[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1 # 123458a4 <_start\+0x123458a4> -[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\) # 123458ac <_start\+0x123458ac> -[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1 # 123458b4 <_start\+0x123458b4> -[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\) # 123458bb <_start\+0x123458bb> -[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1 # 123458c2 <_start\+0x123458c2> -[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\) # 123458ca <_start\+0x123458ca> -[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1 # 123458d2 <_start\+0x123458d2> -[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\) # 123458d9 <_start\+0x123458d9> -[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1 # 123458e0 <_start\+0x123458e0> -[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq %xmm1,0x12345678\(%rip\) # 123458e8 <_start\+0x123458e8> -[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq 0x12345678\(%rip\),%xmm1 # 123458f0 <_start\+0x123458f0> -[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1 # 123458f8 <_start\+0x123458f8> -[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1 # 12345900 <_start\+0x12345900> -[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1 # 12345909 <_start\+0x12345909> -[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1 # 12345912 <_start\+0x12345912> -[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1 # 12345919 <_start\+0x12345919> -[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1 # 12345920 <_start\+0x12345920> -[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1 # 12345927 <_start\+0x12345927> -[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%xmm1 # 1234592f <_start\+0x1234592f> -[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%xmm1 # 12345937 <_start\+0x12345937> -[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%xmm1 # 1234593f <_start\+0x1234593f> -[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq 0x12345678\(%rip\),%xmm1 # 12345947 <_start\+0x12345947> -[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1 # 1234594f <_start\+0x1234594f> -[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1 # 12345956 <_start\+0x12345956> +[ ]*[a-f0-9]+: 66 0f 15 08 unpckhpd \(%rax\),%xmm1 +[ ]*[a-f0-9]+: 0f 15 08 unpckhps \(%rax\),%xmm1 +[ ]*[a-f0-9]+: 66 0f 14 08 unpcklpd \(%rax\),%xmm1 +[ ]*[a-f0-9]+: 0f 14 08 unpcklps \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps 0x12345678\(%rip\),%xmm1 # 1234586c <_start\+0x1234586c> +[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd 0x12345678\(%rip\),%xmm1 # 12345874 <_start\+0x12345874> +[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss 0x12345678\(%rip\),%xmm1 # 1234587b <_start\+0x1234587b> +[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd 0x12345678\(%rip\),%xmm1 # 12345883 <_start\+0x12345883> +[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq 0x12345678\(%rip\),%xmm1 # 1234588b <_start\+0x1234588b> +[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd 0x12345678\(%rip\),%xmm1 # 12345892 <_start\+0x12345892> +[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq 0x12345678\(%rip\),%xmm1 # 1234589a <_start\+0x1234589a> +[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1 # 123458a2 <_start\+0x123458a2> +[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\) # 123458aa <_start\+0x123458aa> +[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1 # 123458b2 <_start\+0x123458b2> +[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\) # 123458ba <_start\+0x123458ba> +[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1 # 123458c2 <_start\+0x123458c2> +[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\) # 123458c9 <_start\+0x123458c9> +[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1 # 123458d0 <_start\+0x123458d0> +[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\) # 123458d8 <_start\+0x123458d8> +[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1 # 123458e0 <_start\+0x123458e0> +[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\) # 123458e7 <_start\+0x123458e7> +[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1 # 123458ee <_start\+0x123458ee> +[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq %xmm1,0x12345678\(%rip\) # 123458f6 <_start\+0x123458f6> +[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq 0x12345678\(%rip\),%xmm1 # 123458fe <_start\+0x123458fe> +[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1 # 12345906 <_start\+0x12345906> +[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1 # 1234590e <_start\+0x1234590e> +[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1 # 12345917 <_start\+0x12345917> +[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1 # 12345920 <_start\+0x12345920> +[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1 # 12345927 <_start\+0x12345927> +[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1 # 1234592e <_start\+0x1234592e> +[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1 # 12345935 <_start\+0x12345935> +[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%xmm1 # 1234593d <_start\+0x1234593d> +[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%xmm1 # 12345945 <_start\+0x12345945> +[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%xmm1 # 1234594d <_start\+0x1234594d> +[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq 0x12345678\(%rip\),%xmm1 # 12345955 <_start\+0x12345955> +[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1 # 1234595d <_start\+0x1234595d> +[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1 # 12345964 <_start\+0x12345964> [ ]*[a-f0-9]+: f2 0f c2 00 00 cmpeqsd \(%rax\),%xmm0 [ ]*[a-f0-9]+: f3 0f c2 00 00 cmpeqss \(%rax\),%xmm0 [ ]*[a-f0-9]+: 66 0f 2a 00 cvtpi2pd \(%rax\),%xmm0 @@ -173,4 +177,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 38 34 00 pmovzxwq \(%rax\),%xmm0 [ ]*[a-f0-9]+: 66 0f 38 35 00 pmovzxdq \(%rax\),%xmm0 [ ]*[a-f0-9]+: 66 0f 3a 21 00 00 insertps \$0x0,\(%rax\),%xmm0 +[ ]*[a-f0-9]+: 66 0f 15 00 unpckhpd \(%rax\),%xmm0 +[ ]*[a-f0-9]+: 0f 15 00 unpckhps \(%rax\),%xmm0 +[ ]*[a-f0-9]+: 66 0f 14 00 unpcklpd \(%rax\),%xmm0 +[ ]*[a-f0-9]+: 0f 14 00 unpcklps \(%rax\),%xmm0 #pass diff --git a/gas/testsuite/gas/i386/x86-64-simd.s b/gas/testsuite/gas/i386/x86-64-simd.s index a09a353..67bad4e 100644 --- a/gas/testsuite/gas/i386/x86-64-simd.s +++ b/gas/testsuite/gas/i386/x86-64-simd.s @@ -86,6 +86,11 @@ _start: pmovzxdq (%rax),%xmm0 insertps $0x0,(%rax),%xmm0 + unpckhpd (%rax),%xmm1 + unpckhps (%rax),%xmm1 + unpcklpd (%rax),%xmm1 + unpcklps (%rax),%xmm1 + .intel_syntax noprefix addsubps xmm1,XMMWORD PTR [rip+0x12345678] @@ -171,3 +176,7 @@ pmovzxwd xmm0,QWORD PTR [rax] pmovzxwq xmm0,DWORD PTR [rax] pmovzxdq xmm0,QWORD PTR [rax] insertps xmm0,DWORD PTR [rax],0x0 +unpckhpd xmm0,XMMWORD PTR [rax] +unpckhps xmm0,XMMWORD PTR [rax] +unpcklpd xmm0,XMMWORD PTR [rax] +unpcklps xmm0,XMMWORD PTR [rax] diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 485e3ed..b02c61f 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2007-10-04 H.J. Lu <hongjiu.lu@intel.com> + + * i386-dis.c (dis386_twobyte): Use EXx instead of EXq on + unpckhpX and unpckhpX. + 2007-10-04 David Daney <ddaney@avtrex.com> * mips-opc.c (mips_builtin_opcodes): Mark lwxc1 as working on FP_S diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index cb83f6f..b9708ef 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1036,8 +1036,8 @@ static const struct dis386 dis386_twobyte[] = { { PREFIX_TABLE (PREFIX_0F11) }, { PREFIX_TABLE (PREFIX_0F12) }, { MOD_TABLE (MOD_0F13) }, - { "unpcklpX", { XM, EXq } }, - { "unpckhpX", { XM, EXq } }, + { "unpcklpX", { XM, EXx } }, + { "unpckhpX", { XM, EXx } }, { PREFIX_TABLE (PREFIX_0F16) }, { MOD_TABLE (MOD_0F17) }, /* 18 */ |