From: H.J. Lu Date: Mon, 31 Dec 2007 15:42:22 +0000 (+0000) Subject: gas/testsuite/ X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a537f29b25479239671d1494af3372eaab572342;p=pf3gnuchains%2Fpf3gnuchains3x.git gas/testsuite/ 2007-12-31 H.J. Lu * gas/i386/inval.s: Add test for cvtsi2ss/cvtsi2sd. * gas/i386/simd.s: Likewise. * gas/i386/x86-64-simd.s: Likewise. * gas/i386/inval.l: Updated. * gas/i386/simd-intel.d: Likewise. * gas/i386/simd-suffix.d: Likewise. * gas/i386/simd.d: Likewise. * gas/i386/sse2.d: Likewise. * gas/i386/x86-64-opcode.d: Likewise. * gas/i386/x86-64-simd-intel.d: Likewise. * gas/i386/x86-64-simd-suffix.d: Likewise. * gas/i386/x86-64-simd.d: Likewise. opcodes/ 2007-12-31 H.J. Lu * i386-dis.c (prefix_table): Use "%LQ" on cvtpi2ps/cvtsi2sd. (putop): Handle '%' and "LQ". * i386-opc.tbl: Remove IgnoreSize from cvtpi2ps/cvtsi2sd. * i386-tbl.h: Regenerated. --- diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 7e2d6caebd..0d07d91a73 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,19 @@ +2007-12-31 H.J. Lu + + * gas/i386/inval.s: Add test for cvtsi2ss/cvtsi2sd. + * gas/i386/simd.s: Likewise. + * gas/i386/x86-64-simd.s: Likewise. + + * gas/i386/inval.l: Updated. + * gas/i386/simd-intel.d: Likewise. + * gas/i386/simd-suffix.d: Likewise. + * gas/i386/simd.d: Likewise. + * gas/i386/sse2.d: Likewise. + * gas/i386/x86-64-opcode.d: Likewise. + * gas/i386/x86-64-simd-intel.d: Likewise. + * gas/i386/x86-64-simd-suffix.d: Likewise. + * gas/i386/x86-64-simd.d: Likewise. + 2007-12-28 John David Anglin * gas/all/gas.exp: Skip relax test on hppa*-*-hpux*. diff --git a/gas/testsuite/gas/i386/inval.l b/gas/testsuite/gas/i386/inval.l index 8abcbde95a..41cb399463 100644 --- a/gas/testsuite/gas/i386/inval.l +++ b/gas/testsuite/gas/i386/inval.l @@ -47,56 +47,73 @@ .*:48: Error: .* .*:49: Error: .* .*:50: Error: .* +.*:51: Error: .* +.*:52: Error: .* +.*:55: Error: .* +.*:56: Error: .* +.*:57: Error: .* +.*:58: Error: .* GAS LISTING .* - 1 [ ]* .text - 2 [ ]*# All the following should be illegal - 3 [ ]* mov \(%dx\),%al - 4 [ ]* mov \(%eax,%esp,2\),%al - 5 [ ]* setae %eax - 6 [ ]* pushb %ds - 7 [ ]* popb %ds - 8 [ ]* pushb %al - 9 [ ]* popb %al - 10 [ ]* pushb %ah - 11 [ ]* popb %ah - 12 [ ]* pushb %ax - 13 [ ]* popb %ax - 14 [ ]* pushb %eax - 15 [ ]* popb %eax - 16 [ ]* movb %ds,%ax - 17 [ ]* movb %ds,%eax - 18 [ ]* movb %ax,%ds - 19 [ ]* movb %eax,%ds - 20 [ ]* movdb %eax,%mm0 - 21 [ ]* movqb 0,%mm0 - 22 [ ]* ldsb 0,%eax - 23 [ ]* setnew 0 - 24 [ ]* movdw %eax,%mm0 - 25 [ ]* movqw 0,%mm0 - 26 [ ]* div %cx,%al - 27 [ ]* div %cl,%ax - 28 [ ]* div %ecx,%al - 29 [ ]* imul 10,%bx,%ecx - 30 [ ]* imul 10,%bx,%al - 31 [ ]* popab - 32 [ ]* stil - 33 [ ]* aaab - 34 [ ]* cwdel - 35 [ ]* cwdw - 36 [ ]* callww 0 - 37 [ ]*foo: jaw foo - 38 [ ]* jcxzw foo - 39 [ ]* jecxzl foo - 40 [ ]* loopb foo - 41 [ ]* xlatw %es:%bx - 42 [ ]* xlatl %es:%bx - 43 [ ]* intl 2 - 44 [ ]* int3b - 45 [ ]* hltb - 46 [ ]* fstb %st\(0\) - 47 [ ]* fcompll 28\(%ebp\) - 48 [ ]* fldlw \(%eax\) - 49 [ ]* movl \$%ebx,%eax - 50 [ ]* insertq \$4,\$2,%xmm2,%ebx +[ ]*1[ ]+\.text +[ ]*2[ ]+\# All the following should be illegal +[ ]*3[ ]+mov \(%dx\),%al +[ ]*4[ ]+mov \(%eax,%esp,2\),%al +[ ]*5[ ]+setae %eax +[ ]*6[ ]+pushb %ds +[ ]*7[ ]+popb %ds +[ ]*8[ ]+pushb %al +[ ]*9[ ]+popb %al +[ ]*10[ ]+pushb %ah +[ ]*11[ ]+popb %ah +[ ]*12[ ]+pushb %ax +[ ]*13[ ]+popb %ax +[ ]*14[ ]+pushb %eax +[ ]*15[ ]+popb %eax +[ ]*16[ ]+movb %ds,%ax +[ ]*17[ ]+movb %ds,%eax +[ ]*18[ ]+movb %ax,%ds +[ ]*19[ ]+movb %eax,%ds +[ ]*20[ ]+movdb %eax,%mm0 +[ ]*21[ ]+movqb 0,%mm0 +[ ]*22[ ]+ldsb 0,%eax +[ ]*23[ ]+setnew 0 +[ ]*24[ ]+movdw %eax,%mm0 +[ ]*25[ ]+movqw 0,%mm0 +[ ]*26[ ]+div %cx,%al +[ ]*27[ ]+div %cl,%ax +[ ]*28[ ]+div %ecx,%al +[ ]*29[ ]+imul 10,%bx,%ecx +[ ]*30[ ]+imul 10,%bx,%al +[ ]*31[ ]+popab +[ ]*32[ ]+stil +[ ]*33[ ]+aaab +[ ]*34[ ]+cwdel +[ ]*35[ ]+cwdw +[ ]*36[ ]+callww 0 +[ ]*37[ ]+foo: jaw foo +[ ]*38[ ]+jcxzw foo +[ ]*39[ ]+jecxzl foo +[ ]*40[ ]+loopb foo +[ ]*41[ ]+xlatw %es:%bx +[ ]*42[ ]+xlatl %es:%bx +[ ]*43[ ]+intl 2 +[ ]*44[ ]+int3b +[ ]*45[ ]+hltb +[ ]*46[ ]+fstb %st\(0\) +[ ]*47[ ]+fcompll 28\(%ebp\) +[ ]*48[ ]+fldlw \(%eax\) +[ ]*49[ ]+movl \$%ebx,%eax +[ ]*50[ ]+insertq \$4,\$2,%xmm2,%ebx +[ ]*51[ ]+cvtsi2ssq \(%eax\),%xmm1 +[ ]*52[ ]+cvtsi2sdq \(%eax\),%xmm1 +[ ]*53[ ]+ +[ ]*54[ ]+\.intel_syntax noprefix +[ ]*55[ ]+cvtsi2ss xmm1,QWORD PTR \[eax\] +[ ]*56[ ]+cvtsi2sd xmm1,QWORD PTR \[eax\] +[ ]*57[ ]+cvtsi2ssq xmm1,QWORD PTR \[eax\] + GAS LISTING .* + + +[ ]*58[ ]+cvtsi2sdq xmm1,QWORD PTR \[eax\] diff --git a/gas/testsuite/gas/i386/inval.s b/gas/testsuite/gas/i386/inval.s index 5b440ed0b5..e108175b3a 100644 --- a/gas/testsuite/gas/i386/inval.s +++ b/gas/testsuite/gas/i386/inval.s @@ -48,3 +48,11 @@ foo: jaw foo fldlw (%eax) movl $%ebx,%eax insertq $4,$2,%xmm2,%ebx + cvtsi2ssq (%eax),%xmm1 + cvtsi2sdq (%eax),%xmm1 + + .intel_syntax noprefix + cvtsi2ss xmm1,QWORD PTR [eax] + cvtsi2sd xmm1,QWORD PTR [eax] + cvtsi2ssq xmm1,QWORD PTR [eax] + cvtsi2sdq xmm1,QWORD PTR [eax] diff --git a/gas/testsuite/gas/i386/simd-intel.d b/gas/testsuite/gas/i386/simd-intel.d index 8ed89277dd..559512e34c 100644 --- a/gas/testsuite/gas/i386/simd-intel.d +++ b/gas/testsuite/gas/i386/simd-intel.d @@ -93,6 +93,14 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 0f c2 38 10 cmpss xmm7,DWORD PTR \[eax\],0x10 [ ]*[a-f0-9]+: f2 0f c2 f7 10 cmpsd xmm6,xmm7,0x10 [ ]*[a-f0-9]+: f2 0f c2 38 10 cmpsd xmm7,QWORD PTR \[eax\],0x10 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss xmm1,eax +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd xmm1,eax +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss xmm1,eax +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd xmm1,eax +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ss xmm1,DWORD PTR \[eax\] +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sd xmm1,DWORD PTR \[eax\] +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ss xmm1,DWORD PTR \[eax\] +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sd xmm1,DWORD 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 @@ -178,4 +186,12 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 0f c2 38 10 cmpss xmm7,DWORD PTR \[eax\],0x10 [ ]*[a-f0-9]+: f2 0f c2 f7 10 cmpsd xmm6,xmm7,0x10 [ ]*[a-f0-9]+: f2 0f c2 38 10 cmpsd xmm7,QWORD PTR \[eax\],0x10 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss xmm1,eax +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd xmm1,eax +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss xmm1,eax +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd xmm1,eax +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ss xmm1,DWORD PTR \[eax\] +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sd xmm1,DWORD PTR \[eax\] +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ss xmm1,DWORD PTR \[eax\] +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sd xmm1,DWORD PTR \[eax\] #pass diff --git a/gas/testsuite/gas/i386/simd-suffix.d b/gas/testsuite/gas/i386/simd-suffix.d index abae5b730a..5102733de1 100644 --- a/gas/testsuite/gas/i386/simd-suffix.d +++ b/gas/testsuite/gas/i386/simd-suffix.d @@ -93,6 +93,14 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 0f c2 38 10 cmpss \$0x10,\(%eax\),%xmm7 [ ]*[a-f0-9]+: f2 0f c2 f7 10 cmpsd \$0x10,%xmm7,%xmm6 [ ]*[a-f0-9]+: f2 0f c2 38 10 cmpsd \$0x10,\(%eax\),%xmm7 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ssl %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sdl %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ssl %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sdl %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%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 @@ -178,4 +186,12 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 0f c2 38 10 cmpss \$0x10,\(%eax\),%xmm7 [ ]*[a-f0-9]+: f2 0f c2 f7 10 cmpsd \$0x10,%xmm7,%xmm6 [ ]*[a-f0-9]+: f2 0f c2 38 10 cmpsd \$0x10,\(%eax\),%xmm7 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ssl %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sdl %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ssl %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sdl %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%eax\),%xmm1 #pass diff --git a/gas/testsuite/gas/i386/simd.d b/gas/testsuite/gas/i386/simd.d index d355ffe3ee..e19fb84846 100644 --- a/gas/testsuite/gas/i386/simd.d +++ b/gas/testsuite/gas/i386/simd.d @@ -92,6 +92,14 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 0f c2 38 10 cmpss \$0x10,\(%eax\),%xmm7 [ ]*[a-f0-9]+: f2 0f c2 f7 10 cmpsd \$0x10,%xmm7,%xmm6 [ ]*[a-f0-9]+: f2 0f c2 38 10 cmpsd \$0x10,\(%eax\),%xmm7 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%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 @@ -177,4 +185,12 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 0f c2 38 10 cmpss \$0x10,\(%eax\),%xmm7 [ ]*[a-f0-9]+: f2 0f c2 f7 10 cmpsd \$0x10,%xmm7,%xmm6 [ ]*[a-f0-9]+: f2 0f c2 38 10 cmpsd \$0x10,\(%eax\),%xmm7 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%eax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%eax\),%xmm1 #pass diff --git a/gas/testsuite/gas/i386/simd.s b/gas/testsuite/gas/i386/simd.s index 4854d6032c..edb4cccd6b 100644 --- a/gas/testsuite/gas/i386/simd.s +++ b/gas/testsuite/gas/i386/simd.s @@ -90,6 +90,15 @@ cmpss $0x10,(%eax),%xmm7 cmpsd $0x10,%xmm7,%xmm6 cmpsd $0x10,(%eax),%xmm7 + cvtsi2ss %eax, %xmm1 + cvtsi2sd %eax, %xmm1 + cvtsi2ssl %eax, %xmm1 + cvtsi2sdl %eax, %xmm1 + cvtsi2ss (%eax), %xmm1 + cvtsi2sd (%eax), %xmm1 + cvtsi2ssl (%eax), %xmm1 + cvtsi2sdl (%eax), %xmm1 + .intel_syntax noprefix addsubps xmm1,XMMWORD PTR ds:0x12345678 @@ -177,3 +186,11 @@ cmpss xmm6,xmm7,0x10 cmpss xmm7,DWORD PTR [eax],0x10 cmpsd xmm6,xmm7,0x10 cmpsd xmm7,QWORD PTR [eax],0x10 +cvtsi2ss xmm1,eax +cvtsi2sd xmm1,eax +cvtsi2ssd xmm1,eax +cvtsi2sdd xmm1,eax +cvtsi2ss xmm1,DWORD PTR [eax] +cvtsi2sd xmm1,DWORD PTR [eax] +cvtsi2ssd xmm1,DWORD PTR [eax] +cvtsi2sdd xmm1,DWORD PTR [eax] diff --git a/gas/testsuite/gas/i386/sse2.d b/gas/testsuite/gas/i386/sse2.d index 8b067f568d..55ebb1325c 100644 --- a/gas/testsuite/gas/i386/sse2.d +++ b/gas/testsuite/gas/i386/sse2.d @@ -64,7 +64,7 @@ Disassembly of section .text: 102: 66 0f 2a d3[ ]+cvtpi2pd %mm3,%xmm2 106: 66 0f 2a 1c 24[ ]+cvtpi2pd \(%esp\),%xmm3 10b: f2 0f 2a e5[ ]+cvtsi2sd %ebp,%xmm4 - 10f: f2 0f 2a 2e[ ]+cvtsi2sd \(%esi\),%xmm5 + 10f: f2 0f 2a 2e[ ]+cvtsi2sdl \(%esi\),%xmm5 113: 66 0f 2d f7[ ]+cvtpd2pi %xmm7,%mm6 117: 66 0f 2d 38[ ]+cvtpd2pi \(%eax\),%mm7 11b: f2 0f 2d 01[ ]+cvtsd2si \(%ecx\),%eax diff --git a/gas/testsuite/gas/i386/x86-64-opcode.d b/gas/testsuite/gas/i386/x86-64-opcode.d index 338548fb6f..6641097c62 100644 --- a/gas/testsuite/gas/i386/x86-64-opcode.d +++ b/gas/testsuite/gas/i386/x86-64-opcode.d @@ -126,46 +126,46 @@ Disassembly of section .text: [ ]*[0-9a-f]+:[ ]+f3 4c 0f 2c c7[ ]+cvttss2si[ ]+%xmm7,%r8[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+f3 48 0f 2c c7[ ]+cvttss2si[ ]+%xmm7,%rax[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+f3 4c 0f 2c c0[ ]+cvttss2si[ ]+%xmm0,%r8[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 00[ ]+cvtsi2ssl[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 2a 00[ ]+cvtsi2ssl[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 38[ ]+cvtsi2ssl[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 38[ ]+cvtsi2ssl[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 00[ ]+cvtsi2ssl[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 00[ ]+cvtsi2ssl[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 38[ ]+cvtsi2ssl[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 2a 38[ ]+cvtsi2ssl[ ]+\(%rax\),%xmm7[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+f3 0f 2a c0[ ]+cvtsi2ss[ ]+%eax,%xmm0[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+f3 44 0f 2a f8[ ]+cvtsi2ss[ ]+%eax,%xmm15[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+f3 44 0f 2a c0[ ]+cvtsi2ss[ ]+%eax,%xmm8[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+f3 0f 2a f8[ ]+cvtsi2ss[ ]+%eax,%xmm7[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f3 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm7[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 00[ ]+cvtsi2ssl[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 2a 00[ ]+cvtsi2ssl[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 38[ ]+cvtsi2ssl[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 38[ ]+cvtsi2ssl[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 00[ ]+cvtsi2ssl[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 00[ ]+cvtsi2ssl[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 38[ ]+cvtsi2ssl[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 2a 38[ ]+cvtsi2ssl[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 00[ ]+cvtsi2sdl[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 0f 2a 00[ ]+cvtsi2sdl[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 38[ ]+cvtsi2sdl[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 38[ ]+cvtsi2sdl[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 00[ ]+cvtsi2sdl[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 00[ ]+cvtsi2sdl[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 38[ ]+cvtsi2sdl[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 0f 2a 38[ ]+cvtsi2sdl[ ]+\(%rax\),%xmm7[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+f2 0f 2a c0[ ]+cvtsi2sd[ ]+%eax,%xmm0[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+f2 44 0f 2a f8[ ]+cvtsi2sd[ ]+%eax,%xmm15[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+f2 44 0f 2a c0[ ]+cvtsi2sd[ ]+%eax,%xmm8[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+f2 0f 2a f8[ ]+cvtsi2sd[ ]+%eax,%xmm7[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*[0-9a-f]+:[ ]+f2 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 00[ ]+cvtsi2sdl[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 0f 2a 00[ ]+cvtsi2sdl[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 38[ ]+cvtsi2sdl[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 38[ ]+cvtsi2sdl[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 00[ ]+cvtsi2sdl[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 00[ ]+cvtsi2sdl[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 38[ ]+cvtsi2sdl[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 0f 2a 38[ ]+cvtsi2sdl[ ]+\(%rax\),%xmm7[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+66 41 0f 6e 00[ ]+movd[ ]+\(%r8\),%xmm0[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+66 0f 6e 00[ ]+movd[ ]+\(%rax\),%xmm0[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+66 45 0f 6e 38[ ]+movd[ ]+\(%r8\),%xmm15[ ]*(#.*)* diff --git a/gas/testsuite/gas/i386/x86-64-simd-intel.d b/gas/testsuite/gas/i386/x86-64-simd-intel.d index 7b15257a21..53efdbc911 100644 --- a/gas/testsuite/gas/i386/x86-64-simd-intel.d +++ b/gas/testsuite/gas/i386/x86-64-simd-intel.d @@ -15,32 +15,46 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234569f <_start\+0x1234569f> [ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd xmm1,QWORD PTR \[rip\+0x12345678\] # 123456a6 <_start\+0x123456a6> [ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123456ae <_start\+0x123456ae> -[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123456b6 <_start\+0x123456b6> -[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu XMMWORD PTR \[rip\+0x12345678\],xmm1 # 123456be <_start\+0x123456be> -[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123456c6 <_start\+0x123456c6> -[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd QWORD PTR \[rip\+0x12345678\],xmm1 # 123456ce <_start\+0x123456ce> -[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd xmm1,QWORD PTR \[rip\+0x12345678\] # 123456d6 <_start\+0x123456d6> -[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps QWORD PTR \[rip\+0x12345678\],xmm1 # 123456dd <_start\+0x123456dd> -[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps xmm1,QWORD PTR \[rip\+0x12345678\] # 123456e4 <_start\+0x123456e4> -[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd QWORD PTR \[rip\+0x12345678\],xmm1 # 123456ec <_start\+0x123456ec> -[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd xmm1,QWORD PTR \[rip\+0x12345678\] # 123456f4 <_start\+0x123456f4> -[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps QWORD PTR \[rip\+0x12345678\],xmm1 # 123456fb <_start\+0x123456fb> -[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps xmm1,QWORD PTR \[rip\+0x12345678\] # 12345702 <_start\+0x12345702> -[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq QWORD PTR \[rip\+0x12345678\],xmm1 # 1234570a <_start\+0x1234570a> -[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq xmm1,QWORD PTR \[rip\+0x12345678\] # 12345712 <_start\+0x12345712> -[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234571a <_start\+0x1234571a> -[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345722 <_start\+0x12345722> -[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 1234572b <_start\+0x1234572b> -[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 12345734 <_start\+0x12345734> -[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw mm1,DWORD PTR \[rip\+0x12345678\] # 1234573b <_start\+0x1234573b> -[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq mm1,DWORD PTR \[rip\+0x12345678\] # 12345742 <_start\+0x12345742> -[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd mm1,DWORD PTR \[rip\+0x12345678\] # 12345749 <_start\+0x12345749> -[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345751 <_start\+0x12345751> -[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345759 <_start\+0x12345759> -[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345761 <_start\+0x12345761> -[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345769 <_start\+0x12345769> -[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345771 <_start\+0x12345771> -[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss xmm1,DWORD PTR \[rip\+0x12345678\] # 12345778 <_start\+0x12345778> +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss xmm1,eax +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd xmm1,eax +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss xmm1,eax +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd xmm1,eax +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ss xmm1,rax +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sd xmm1,rax +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ss xmm1,rax +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sd xmm1,rax +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ss xmm1,DWORD PTR \[rax\] +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sd xmm1,DWORD PTR \[rax\] +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ss xmm1,DWORD PTR \[rax\] +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sd xmm1,DWORD PTR \[rax\] +[ ]*[a-f0-9]+: f3 48 0f 2a 08 cvtsi2ss xmm1,QWORD PTR \[rax\] +[ ]*[a-f0-9]+: f2 48 0f 2a 08 cvtsi2sd xmm1,QWORD PTR \[rax\] +[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123456f4 <_start\+0x123456f4> +[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu XMMWORD PTR \[rip\+0x12345678\],xmm1 # 123456fc <_start\+0x123456fc> +[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345704 <_start\+0x12345704> +[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd QWORD PTR \[rip\+0x12345678\],xmm1 # 1234570c <_start\+0x1234570c> +[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345714 <_start\+0x12345714> +[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps QWORD PTR \[rip\+0x12345678\],xmm1 # 1234571b <_start\+0x1234571b> +[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps xmm1,QWORD PTR \[rip\+0x12345678\] # 12345722 <_start\+0x12345722> +[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd QWORD PTR \[rip\+0x12345678\],xmm1 # 1234572a <_start\+0x1234572a> +[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345732 <_start\+0x12345732> +[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps QWORD PTR \[rip\+0x12345678\],xmm1 # 12345739 <_start\+0x12345739> +[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps xmm1,QWORD PTR \[rip\+0x12345678\] # 12345740 <_start\+0x12345740> +[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq QWORD PTR \[rip\+0x12345678\],xmm1 # 12345748 <_start\+0x12345748> +[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq xmm1,QWORD PTR \[rip\+0x12345678\] # 12345750 <_start\+0x12345750> +[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345758 <_start\+0x12345758> +[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345760 <_start\+0x12345760> +[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 12345769 <_start\+0x12345769> +[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 12345772 <_start\+0x12345772> +[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw mm1,DWORD PTR \[rip\+0x12345678\] # 12345779 <_start\+0x12345779> +[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq mm1,DWORD PTR \[rip\+0x12345678\] # 12345780 <_start\+0x12345780> +[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd mm1,DWORD PTR \[rip\+0x12345678\] # 12345787 <_start\+0x12345787> +[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234578f <_start\+0x1234578f> +[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345797 <_start\+0x12345797> +[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234579f <_start\+0x1234579f> +[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123457a7 <_start\+0x123457a7> +[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd xmm1,QWORD PTR \[rip\+0x12345678\] # 123457af <_start\+0x123457af> +[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss xmm1,DWORD PTR \[rip\+0x12345678\] # 123457b6 <_start\+0x123457b6> [ ]*[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\] @@ -99,39 +113,55 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 0f c2 38 10 cmpss xmm7,DWORD PTR \[rax\],0x10 [ ]*[a-f0-9]+: f2 0f c2 f7 10 cmpsd xmm6,xmm7,0x10 [ ]*[a-f0-9]+: f2 0f c2 38 10 cmpsd xmm7,QWORD PTR \[rax\],0x10 -[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345880 <_start\+0x12345880> -[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345888 <_start\+0x12345888> -[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss xmm1,DWORD PTR \[rip\+0x12345678\] # 1234588f <_start\+0x1234588f> -[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345897 <_start\+0x12345897> -[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234589f <_start\+0x1234589f> -[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd xmm1,QWORD PTR \[rip\+0x12345678\] # 123458a6 <_start\+0x123458a6> -[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123458ae <_start\+0x123458ae> -[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123458b6 <_start\+0x123458b6> -[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu XMMWORD PTR \[rip\+0x12345678\],xmm1 # 123458be <_start\+0x123458be> -[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123458c6 <_start\+0x123458c6> -[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd QWORD PTR \[rip\+0x12345678\],xmm1 # 123458ce <_start\+0x123458ce> -[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd xmm1,QWORD PTR \[rip\+0x12345678\] # 123458d6 <_start\+0x123458d6> -[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps QWORD PTR \[rip\+0x12345678\],xmm1 # 123458dd <_start\+0x123458dd> -[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps xmm1,QWORD PTR \[rip\+0x12345678\] # 123458e4 <_start\+0x123458e4> -[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd QWORD PTR \[rip\+0x12345678\],xmm1 # 123458ec <_start\+0x123458ec> -[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd xmm1,QWORD PTR \[rip\+0x12345678\] # 123458f4 <_start\+0x123458f4> -[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps QWORD PTR \[rip\+0x12345678\],xmm1 # 123458fb <_start\+0x123458fb> -[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps xmm1,QWORD PTR \[rip\+0x12345678\] # 12345902 <_start\+0x12345902> -[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq QWORD PTR \[rip\+0x12345678\],xmm1 # 1234590a <_start\+0x1234590a> -[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq xmm1,QWORD PTR \[rip\+0x12345678\] # 12345912 <_start\+0x12345912> -[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234591a <_start\+0x1234591a> -[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345922 <_start\+0x12345922> -[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 1234592b <_start\+0x1234592b> -[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 12345934 <_start\+0x12345934> -[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw mm1,DWORD PTR \[rip\+0x12345678\] # 1234593b <_start\+0x1234593b> -[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq mm1,DWORD PTR \[rip\+0x12345678\] # 12345942 <_start\+0x12345942> -[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd mm1,DWORD PTR \[rip\+0x12345678\] # 12345949 <_start\+0x12345949> -[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345951 <_start\+0x12345951> -[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345959 <_start\+0x12345959> -[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345961 <_start\+0x12345961> -[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 12345969 <_start\+0x12345969> -[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd xmm1,QWORD PTR \[rip\+0x12345678\] # 12345971 <_start\+0x12345971> -[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss xmm1,DWORD PTR \[rip\+0x12345678\] # 12345978 <_start\+0x12345978> +[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123458be <_start\+0x123458be> +[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd xmm1,QWORD PTR \[rip\+0x12345678\] # 123458c6 <_start\+0x123458c6> +[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss xmm1,DWORD PTR \[rip\+0x12345678\] # 123458cd <_start\+0x123458cd> +[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd xmm1,QWORD PTR \[rip\+0x12345678\] # 123458d5 <_start\+0x123458d5> +[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123458dd <_start\+0x123458dd> +[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd xmm1,QWORD PTR \[rip\+0x12345678\] # 123458e4 <_start\+0x123458e4> +[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123458ec <_start\+0x123458ec> +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss xmm1,eax +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd xmm1,eax +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss xmm1,eax +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd xmm1,eax +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ss xmm1,rax +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sd xmm1,rax +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ss xmm1,rax +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sd xmm1,rax +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ss xmm1,DWORD PTR \[rax\] +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sd xmm1,DWORD PTR \[rax\] +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ss xmm1,DWORD PTR \[rax\] +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sd xmm1,DWORD PTR \[rax\] +[ ]*[a-f0-9]+: f3 48 0f 2a 08 cvtsi2ss xmm1,QWORD PTR \[rax\] +[ ]*[a-f0-9]+: f2 48 0f 2a 08 cvtsi2sd xmm1,QWORD PTR \[rax\] +[ ]*[a-f0-9]+: f3 48 0f 2a 08 cvtsi2ss xmm1,QWORD PTR \[rax\] +[ ]*[a-f0-9]+: f2 48 0f 2a 08 cvtsi2sd xmm1,QWORD PTR \[rax\] +[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234593c <_start\+0x1234593c> +[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu XMMWORD PTR \[rip\+0x12345678\],xmm1 # 12345944 <_start\+0x12345944> +[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu xmm1,XMMWORD PTR \[rip\+0x12345678\] # 1234594c <_start\+0x1234594c> +[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd QWORD PTR \[rip\+0x12345678\],xmm1 # 12345954 <_start\+0x12345954> +[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd xmm1,QWORD PTR \[rip\+0x12345678\] # 1234595c <_start\+0x1234595c> +[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps QWORD PTR \[rip\+0x12345678\],xmm1 # 12345963 <_start\+0x12345963> +[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps xmm1,QWORD PTR \[rip\+0x12345678\] # 1234596a <_start\+0x1234596a> +[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd QWORD PTR \[rip\+0x12345678\],xmm1 # 12345972 <_start\+0x12345972> +[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd xmm1,QWORD PTR \[rip\+0x12345678\] # 1234597a <_start\+0x1234597a> +[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps QWORD PTR \[rip\+0x12345678\],xmm1 # 12345981 <_start\+0x12345981> +[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps xmm1,QWORD PTR \[rip\+0x12345678\] # 12345988 <_start\+0x12345988> +[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq QWORD PTR \[rip\+0x12345678\],xmm1 # 12345990 <_start\+0x12345990> +[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq xmm1,QWORD PTR \[rip\+0x12345678\] # 12345998 <_start\+0x12345998> +[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123459a0 <_start\+0x123459a0> +[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123459a8 <_start\+0x123459a8> +[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 123459b1 <_start\+0x123459b1> +[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw xmm1,XMMWORD PTR \[rip\+0x12345678\],0x90 # 123459ba <_start\+0x123459ba> +[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw mm1,DWORD PTR \[rip\+0x12345678\] # 123459c1 <_start\+0x123459c1> +[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq mm1,DWORD PTR \[rip\+0x12345678\] # 123459c8 <_start\+0x123459c8> +[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd mm1,DWORD PTR \[rip\+0x12345678\] # 123459cf <_start\+0x123459cf> +[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123459d7 <_start\+0x123459d7> +[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123459df <_start\+0x123459df> +[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123459e7 <_start\+0x123459e7> +[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq xmm1,XMMWORD PTR \[rip\+0x12345678\] # 123459ef <_start\+0x123459ef> +[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd xmm1,QWORD PTR \[rip\+0x12345678\] # 123459f7 <_start\+0x123459f7> +[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss xmm1,DWORD PTR \[rip\+0x12345678\] # 123459fe <_start\+0x123459fe> [ ]*[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\] diff --git a/gas/testsuite/gas/i386/x86-64-simd-suffix.d b/gas/testsuite/gas/i386/x86-64-simd-suffix.d index d653714877..f5be3b9088 100644 --- a/gas/testsuite/gas/i386/x86-64-simd-suffix.d +++ b/gas/testsuite/gas/i386/x86-64-simd-suffix.d @@ -15,32 +15,46 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq 0x12345678\(%rip\),%xmm1 # 1234569f <_start\+0x1234569f> [ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd 0x12345678\(%rip\),%xmm1 # 123456a6 <_start\+0x123456a6> [ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq 0x12345678\(%rip\),%xmm1 # 123456ae <_start\+0x123456ae> -[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1 # 123456b6 <_start\+0x123456b6> -[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\) # 123456be <_start\+0x123456be> -[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1 # 123456c6 <_start\+0x123456c6> -[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\) # 123456ce <_start\+0x123456ce> -[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1 # 123456d6 <_start\+0x123456d6> -[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\) # 123456dd <_start\+0x123456dd> -[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1 # 123456e4 <_start\+0x123456e4> -[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\) # 123456ec <_start\+0x123456ec> -[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1 # 123456f4 <_start\+0x123456f4> -[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\) # 123456fb <_start\+0x123456fb> -[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1 # 12345702 <_start\+0x12345702> -[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq %xmm1,0x12345678\(%rip\) # 1234570a <_start\+0x1234570a> -[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq 0x12345678\(%rip\),%xmm1 # 12345712 <_start\+0x12345712> -[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1 # 1234571a <_start\+0x1234571a> -[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1 # 12345722 <_start\+0x12345722> -[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1 # 1234572b <_start\+0x1234572b> -[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1 # 12345734 <_start\+0x12345734> -[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1 # 1234573b <_start\+0x1234573b> -[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1 # 12345742 <_start\+0x12345742> -[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1 # 12345749 <_start\+0x12345749> -[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%xmm1 # 12345751 <_start\+0x12345751> -[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%xmm1 # 12345759 <_start\+0x12345759> -[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%xmm1 # 12345761 <_start\+0x12345761> -[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq 0x12345678\(%rip\),%xmm1 # 12345769 <_start\+0x12345769> -[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1 # 12345771 <_start\+0x12345771> -[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1 # 12345778 <_start\+0x12345778> +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ssl %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sdl %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ssl %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sdl %eax,%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ssq %rax,%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sdq %rax,%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ssq %rax,%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sdq %rax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a 08 cvtsi2ssq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a 08 cvtsi2sdq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1 # 123456f4 <_start\+0x123456f4> +[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\) # 123456fc <_start\+0x123456fc> +[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1 # 12345704 <_start\+0x12345704> +[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\) # 1234570c <_start\+0x1234570c> +[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1 # 12345714 <_start\+0x12345714> +[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\) # 1234571b <_start\+0x1234571b> +[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1 # 12345722 <_start\+0x12345722> +[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\) # 1234572a <_start\+0x1234572a> +[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1 # 12345732 <_start\+0x12345732> +[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\) # 12345739 <_start\+0x12345739> +[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1 # 12345740 <_start\+0x12345740> +[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq %xmm1,0x12345678\(%rip\) # 12345748 <_start\+0x12345748> +[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq 0x12345678\(%rip\),%xmm1 # 12345750 <_start\+0x12345750> +[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1 # 12345758 <_start\+0x12345758> +[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1 # 12345760 <_start\+0x12345760> +[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1 # 12345769 <_start\+0x12345769> +[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1 # 12345772 <_start\+0x12345772> +[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1 # 12345779 <_start\+0x12345779> +[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1 # 12345780 <_start\+0x12345780> +[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1 # 12345787 <_start\+0x12345787> +[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%xmm1 # 1234578f <_start\+0x1234578f> +[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%xmm1 # 12345797 <_start\+0x12345797> +[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%xmm1 # 1234579f <_start\+0x1234579f> +[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq 0x12345678\(%rip\),%xmm1 # 123457a7 <_start\+0x123457a7> +[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1 # 123457af <_start\+0x123457af> +[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1 # 123457b6 <_start\+0x123457b6> [ ]*[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 @@ -99,39 +113,55 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 0f c2 38 10 cmpss \$0x10,\(%rax\),%xmm7 [ ]*[a-f0-9]+: f2 0f c2 f7 10 cmpsd \$0x10,%xmm7,%xmm6 [ ]*[a-f0-9]+: f2 0f c2 38 10 cmpsd \$0x10,\(%rax\),%xmm7 -[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps 0x12345678\(%rip\),%xmm1 # 12345880 <_start\+0x12345880> -[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd 0x12345678\(%rip\),%xmm1 # 12345888 <_start\+0x12345888> -[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss 0x12345678\(%rip\),%xmm1 # 1234588f <_start\+0x1234588f> -[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd 0x12345678\(%rip\),%xmm1 # 12345897 <_start\+0x12345897> -[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq 0x12345678\(%rip\),%xmm1 # 1234589f <_start\+0x1234589f> -[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd 0x12345678\(%rip\),%xmm1 # 123458a6 <_start\+0x123458a6> -[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq 0x12345678\(%rip\),%xmm1 # 123458ae <_start\+0x123458ae> -[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1 # 123458b6 <_start\+0x123458b6> -[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\) # 123458be <_start\+0x123458be> -[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1 # 123458c6 <_start\+0x123458c6> -[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\) # 123458ce <_start\+0x123458ce> -[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1 # 123458d6 <_start\+0x123458d6> -[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\) # 123458dd <_start\+0x123458dd> -[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1 # 123458e4 <_start\+0x123458e4> -[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\) # 123458ec <_start\+0x123458ec> -[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1 # 123458f4 <_start\+0x123458f4> -[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\) # 123458fb <_start\+0x123458fb> -[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1 # 12345902 <_start\+0x12345902> -[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq %xmm1,0x12345678\(%rip\) # 1234590a <_start\+0x1234590a> -[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq 0x12345678\(%rip\),%xmm1 # 12345912 <_start\+0x12345912> -[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1 # 1234591a <_start\+0x1234591a> -[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1 # 12345922 <_start\+0x12345922> -[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1 # 1234592b <_start\+0x1234592b> -[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1 # 12345934 <_start\+0x12345934> -[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1 # 1234593b <_start\+0x1234593b> -[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1 # 12345942 <_start\+0x12345942> -[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1 # 12345949 <_start\+0x12345949> -[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%xmm1 # 12345951 <_start\+0x12345951> -[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%xmm1 # 12345959 <_start\+0x12345959> -[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%xmm1 # 12345961 <_start\+0x12345961> -[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq 0x12345678\(%rip\),%xmm1 # 12345969 <_start\+0x12345969> -[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1 # 12345971 <_start\+0x12345971> -[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1 # 12345978 <_start\+0x12345978> +[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps 0x12345678\(%rip\),%xmm1 # 123458be <_start\+0x123458be> +[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd 0x12345678\(%rip\),%xmm1 # 123458c6 <_start\+0x123458c6> +[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss 0x12345678\(%rip\),%xmm1 # 123458cd <_start\+0x123458cd> +[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd 0x12345678\(%rip\),%xmm1 # 123458d5 <_start\+0x123458d5> +[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq 0x12345678\(%rip\),%xmm1 # 123458dd <_start\+0x123458dd> +[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd 0x12345678\(%rip\),%xmm1 # 123458e4 <_start\+0x123458e4> +[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq 0x12345678\(%rip\),%xmm1 # 123458ec <_start\+0x123458ec> +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ssl %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sdl %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ssl %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sdl %eax,%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ssq %rax,%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sdq %rax,%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ssq %rax,%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sdq %rax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a 08 cvtsi2ssq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a 08 cvtsi2sdq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a 08 cvtsi2ssq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a 08 cvtsi2sdq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1 # 1234593c <_start\+0x1234593c> +[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\) # 12345944 <_start\+0x12345944> +[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1 # 1234594c <_start\+0x1234594c> +[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\) # 12345954 <_start\+0x12345954> +[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1 # 1234595c <_start\+0x1234595c> +[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\) # 12345963 <_start\+0x12345963> +[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1 # 1234596a <_start\+0x1234596a> +[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\) # 12345972 <_start\+0x12345972> +[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1 # 1234597a <_start\+0x1234597a> +[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\) # 12345981 <_start\+0x12345981> +[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1 # 12345988 <_start\+0x12345988> +[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq %xmm1,0x12345678\(%rip\) # 12345990 <_start\+0x12345990> +[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq 0x12345678\(%rip\),%xmm1 # 12345998 <_start\+0x12345998> +[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1 # 123459a0 <_start\+0x123459a0> +[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1 # 123459a8 <_start\+0x123459a8> +[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1 # 123459b1 <_start\+0x123459b1> +[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1 # 123459ba <_start\+0x123459ba> +[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1 # 123459c1 <_start\+0x123459c1> +[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1 # 123459c8 <_start\+0x123459c8> +[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1 # 123459cf <_start\+0x123459cf> +[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%xmm1 # 123459d7 <_start\+0x123459d7> +[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%xmm1 # 123459df <_start\+0x123459df> +[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%xmm1 # 123459e7 <_start\+0x123459e7> +[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq 0x12345678\(%rip\),%xmm1 # 123459ef <_start\+0x123459ef> +[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1 # 123459f7 <_start\+0x123459f7> +[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1 # 123459fe <_start\+0x123459fe> [ ]*[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 diff --git a/gas/testsuite/gas/i386/x86-64-simd.d b/gas/testsuite/gas/i386/x86-64-simd.d index 65f832fcb0..3f0b98d24c 100644 --- a/gas/testsuite/gas/i386/x86-64-simd.d +++ b/gas/testsuite/gas/i386/x86-64-simd.d @@ -14,32 +14,46 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq 0x12345678\(%rip\),%xmm1 # 1234569f <_start\+0x1234569f> [ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd 0x12345678\(%rip\),%xmm1 # 123456a6 <_start\+0x123456a6> [ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq 0x12345678\(%rip\),%xmm1 # 123456ae <_start\+0x123456ae> -[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1 # 123456b6 <_start\+0x123456b6> -[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\) # 123456be <_start\+0x123456be> -[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1 # 123456c6 <_start\+0x123456c6> -[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\) # 123456ce <_start\+0x123456ce> -[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1 # 123456d6 <_start\+0x123456d6> -[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\) # 123456dd <_start\+0x123456dd> -[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1 # 123456e4 <_start\+0x123456e4> -[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\) # 123456ec <_start\+0x123456ec> -[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1 # 123456f4 <_start\+0x123456f4> -[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\) # 123456fb <_start\+0x123456fb> -[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1 # 12345702 <_start\+0x12345702> -[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq %xmm1,0x12345678\(%rip\) # 1234570a <_start\+0x1234570a> -[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq 0x12345678\(%rip\),%xmm1 # 12345712 <_start\+0x12345712> -[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1 # 1234571a <_start\+0x1234571a> -[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1 # 12345722 <_start\+0x12345722> -[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1 # 1234572b <_start\+0x1234572b> -[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1 # 12345734 <_start\+0x12345734> -[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1 # 1234573b <_start\+0x1234573b> -[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1 # 12345742 <_start\+0x12345742> -[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1 # 12345749 <_start\+0x12345749> -[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%xmm1 # 12345751 <_start\+0x12345751> -[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%xmm1 # 12345759 <_start\+0x12345759> -[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%xmm1 # 12345761 <_start\+0x12345761> -[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq 0x12345678\(%rip\),%xmm1 # 12345769 <_start\+0x12345769> -[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1 # 12345771 <_start\+0x12345771> -[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1 # 12345778 <_start\+0x12345778> +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd %eax,%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ss %rax,%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sd %rax,%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ss %rax,%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sd %rax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a 08 cvtsi2ssq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a 08 cvtsi2sdq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1 # 123456f4 <_start\+0x123456f4> +[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\) # 123456fc <_start\+0x123456fc> +[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1 # 12345704 <_start\+0x12345704> +[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\) # 1234570c <_start\+0x1234570c> +[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1 # 12345714 <_start\+0x12345714> +[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\) # 1234571b <_start\+0x1234571b> +[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1 # 12345722 <_start\+0x12345722> +[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\) # 1234572a <_start\+0x1234572a> +[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1 # 12345732 <_start\+0x12345732> +[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\) # 12345739 <_start\+0x12345739> +[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1 # 12345740 <_start\+0x12345740> +[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq %xmm1,0x12345678\(%rip\) # 12345748 <_start\+0x12345748> +[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq 0x12345678\(%rip\),%xmm1 # 12345750 <_start\+0x12345750> +[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1 # 12345758 <_start\+0x12345758> +[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1 # 12345760 <_start\+0x12345760> +[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1 # 12345769 <_start\+0x12345769> +[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1 # 12345772 <_start\+0x12345772> +[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1 # 12345779 <_start\+0x12345779> +[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1 # 12345780 <_start\+0x12345780> +[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1 # 12345787 <_start\+0x12345787> +[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%xmm1 # 1234578f <_start\+0x1234578f> +[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%xmm1 # 12345797 <_start\+0x12345797> +[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%xmm1 # 1234579f <_start\+0x1234579f> +[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq 0x12345678\(%rip\),%xmm1 # 123457a7 <_start\+0x123457a7> +[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1 # 123457af <_start\+0x123457af> +[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1 # 123457b6 <_start\+0x123457b6> [ ]*[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 @@ -98,39 +112,55 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 0f c2 38 10 cmpss \$0x10,\(%rax\),%xmm7 [ ]*[a-f0-9]+: f2 0f c2 f7 10 cmpsd \$0x10,%xmm7,%xmm6 [ ]*[a-f0-9]+: f2 0f c2 38 10 cmpsd \$0x10,\(%rax\),%xmm7 -[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps 0x12345678\(%rip\),%xmm1 # 12345880 <_start\+0x12345880> -[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd 0x12345678\(%rip\),%xmm1 # 12345888 <_start\+0x12345888> -[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss 0x12345678\(%rip\),%xmm1 # 1234588f <_start\+0x1234588f> -[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd 0x12345678\(%rip\),%xmm1 # 12345897 <_start\+0x12345897> -[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq 0x12345678\(%rip\),%xmm1 # 1234589f <_start\+0x1234589f> -[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd 0x12345678\(%rip\),%xmm1 # 123458a6 <_start\+0x123458a6> -[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq 0x12345678\(%rip\),%xmm1 # 123458ae <_start\+0x123458ae> -[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1 # 123458b6 <_start\+0x123458b6> -[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\) # 123458be <_start\+0x123458be> -[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1 # 123458c6 <_start\+0x123458c6> -[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\) # 123458ce <_start\+0x123458ce> -[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1 # 123458d6 <_start\+0x123458d6> -[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\) # 123458dd <_start\+0x123458dd> -[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1 # 123458e4 <_start\+0x123458e4> -[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\) # 123458ec <_start\+0x123458ec> -[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1 # 123458f4 <_start\+0x123458f4> -[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\) # 123458fb <_start\+0x123458fb> -[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1 # 12345902 <_start\+0x12345902> -[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq %xmm1,0x12345678\(%rip\) # 1234590a <_start\+0x1234590a> -[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq 0x12345678\(%rip\),%xmm1 # 12345912 <_start\+0x12345912> -[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1 # 1234591a <_start\+0x1234591a> -[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1 # 12345922 <_start\+0x12345922> -[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1 # 1234592b <_start\+0x1234592b> -[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1 # 12345934 <_start\+0x12345934> -[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1 # 1234593b <_start\+0x1234593b> -[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1 # 12345942 <_start\+0x12345942> -[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1 # 12345949 <_start\+0x12345949> -[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%xmm1 # 12345951 <_start\+0x12345951> -[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%xmm1 # 12345959 <_start\+0x12345959> -[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%xmm1 # 12345961 <_start\+0x12345961> -[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq 0x12345678\(%rip\),%xmm1 # 12345969 <_start\+0x12345969> -[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1 # 12345971 <_start\+0x12345971> -[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1 # 12345978 <_start\+0x12345978> +[ ]*[a-f0-9]+: f2 0f d0 0d 78 56 34 12 addsubps 0x12345678\(%rip\),%xmm1 # 123458be <_start\+0x123458be> +[ ]*[a-f0-9]+: 66 0f 2f 0d 78 56 34 12 comisd 0x12345678\(%rip\),%xmm1 # 123458c6 <_start\+0x123458c6> +[ ]*[a-f0-9]+: 0f 2f 0d 78 56 34 12 comiss 0x12345678\(%rip\),%xmm1 # 123458cd <_start\+0x123458cd> +[ ]*[a-f0-9]+: f3 0f e6 0d 78 56 34 12 cvtdq2pd 0x12345678\(%rip\),%xmm1 # 123458d5 <_start\+0x123458d5> +[ ]*[a-f0-9]+: f2 0f e6 0d 78 56 34 12 cvtpd2dq 0x12345678\(%rip\),%xmm1 # 123458dd <_start\+0x123458dd> +[ ]*[a-f0-9]+: 0f 5a 0d 78 56 34 12 cvtps2pd 0x12345678\(%rip\),%xmm1 # 123458e4 <_start\+0x123458e4> +[ ]*[a-f0-9]+: f3 0f 5b 0d 78 56 34 12 cvttps2dq 0x12345678\(%rip\),%xmm1 # 123458ec <_start\+0x123458ec> +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd %eax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a c8 cvtsi2ss %eax,%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a c8 cvtsi2sd %eax,%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ss %rax,%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sd %rax,%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a c8 cvtsi2ss %rax,%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a c8 cvtsi2sd %rax,%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f3 0f 2a 08 cvtsi2ssl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 2a 08 cvtsi2sdl \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a 08 cvtsi2ssq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a 08 cvtsi2sdq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f3 48 0f 2a 08 cvtsi2ssq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 48 0f 2a 08 cvtsi2sdq \(%rax\),%xmm1 +[ ]*[a-f0-9]+: f2 0f 7c 0d 78 56 34 12 haddps 0x12345678\(%rip\),%xmm1 # 1234593c <_start\+0x1234593c> +[ ]*[a-f0-9]+: f3 0f 7f 0d 78 56 34 12 movdqu %xmm1,0x12345678\(%rip\) # 12345944 <_start\+0x12345944> +[ ]*[a-f0-9]+: f3 0f 6f 0d 78 56 34 12 movdqu 0x12345678\(%rip\),%xmm1 # 1234594c <_start\+0x1234594c> +[ ]*[a-f0-9]+: 66 0f 17 0d 78 56 34 12 movhpd %xmm1,0x12345678\(%rip\) # 12345954 <_start\+0x12345954> +[ ]*[a-f0-9]+: 66 0f 16 0d 78 56 34 12 movhpd 0x12345678\(%rip\),%xmm1 # 1234595c <_start\+0x1234595c> +[ ]*[a-f0-9]+: 0f 17 0d 78 56 34 12 movhps %xmm1,0x12345678\(%rip\) # 12345963 <_start\+0x12345963> +[ ]*[a-f0-9]+: 0f 16 0d 78 56 34 12 movhps 0x12345678\(%rip\),%xmm1 # 1234596a <_start\+0x1234596a> +[ ]*[a-f0-9]+: 66 0f 13 0d 78 56 34 12 movlpd %xmm1,0x12345678\(%rip\) # 12345972 <_start\+0x12345972> +[ ]*[a-f0-9]+: 66 0f 12 0d 78 56 34 12 movlpd 0x12345678\(%rip\),%xmm1 # 1234597a <_start\+0x1234597a> +[ ]*[a-f0-9]+: 0f 13 0d 78 56 34 12 movlps %xmm1,0x12345678\(%rip\) # 12345981 <_start\+0x12345981> +[ ]*[a-f0-9]+: 0f 12 0d 78 56 34 12 movlps 0x12345678\(%rip\),%xmm1 # 12345988 <_start\+0x12345988> +[ ]*[a-f0-9]+: 66 0f d6 0d 78 56 34 12 movq %xmm1,0x12345678\(%rip\) # 12345990 <_start\+0x12345990> +[ ]*[a-f0-9]+: f3 0f 7e 0d 78 56 34 12 movq 0x12345678\(%rip\),%xmm1 # 12345998 <_start\+0x12345998> +[ ]*[a-f0-9]+: f3 0f 16 0d 78 56 34 12 movshdup 0x12345678\(%rip\),%xmm1 # 123459a0 <_start\+0x123459a0> +[ ]*[a-f0-9]+: f3 0f 12 0d 78 56 34 12 movsldup 0x12345678\(%rip\),%xmm1 # 123459a8 <_start\+0x123459a8> +[ ]*[a-f0-9]+: f3 0f 70 0d 78 56 34 12 90 pshufhw \$0x90,0x12345678\(%rip\),%xmm1 # 123459b1 <_start\+0x123459b1> +[ ]*[a-f0-9]+: f2 0f 70 0d 78 56 34 12 90 pshuflw \$0x90,0x12345678\(%rip\),%xmm1 # 123459ba <_start\+0x123459ba> +[ ]*[a-f0-9]+: 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%mm1 # 123459c1 <_start\+0x123459c1> +[ ]*[a-f0-9]+: 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%mm1 # 123459c8 <_start\+0x123459c8> +[ ]*[a-f0-9]+: 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%mm1 # 123459cf <_start\+0x123459cf> +[ ]*[a-f0-9]+: 66 0f 60 0d 78 56 34 12 punpcklbw 0x12345678\(%rip\),%xmm1 # 123459d7 <_start\+0x123459d7> +[ ]*[a-f0-9]+: 66 0f 62 0d 78 56 34 12 punpckldq 0x12345678\(%rip\),%xmm1 # 123459df <_start\+0x123459df> +[ ]*[a-f0-9]+: 66 0f 61 0d 78 56 34 12 punpcklwd 0x12345678\(%rip\),%xmm1 # 123459e7 <_start\+0x123459e7> +[ ]*[a-f0-9]+: 66 0f 6c 0d 78 56 34 12 punpcklqdq 0x12345678\(%rip\),%xmm1 # 123459ef <_start\+0x123459ef> +[ ]*[a-f0-9]+: 66 0f 2e 0d 78 56 34 12 ucomisd 0x12345678\(%rip\),%xmm1 # 123459f7 <_start\+0x123459f7> +[ ]*[a-f0-9]+: 0f 2e 0d 78 56 34 12 ucomiss 0x12345678\(%rip\),%xmm1 # 123459fe <_start\+0x123459fe> [ ]*[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 diff --git a/gas/testsuite/gas/i386/x86-64-simd.s b/gas/testsuite/gas/i386/x86-64-simd.s index f14e6da5b6..5c1d8d1f32 100644 --- a/gas/testsuite/gas/i386/x86-64-simd.s +++ b/gas/testsuite/gas/i386/x86-64-simd.s @@ -7,6 +7,20 @@ _start: cvtpd2dq 0x12345678(%rip),%xmm1 cvtps2pd 0x12345678(%rip),%xmm1 cvttps2dq 0x12345678(%rip),%xmm1 + cvtsi2ss %eax, %xmm1 + cvtsi2sd %eax, %xmm1 + cvtsi2ssl %eax, %xmm1 + cvtsi2sdl %eax, %xmm1 + cvtsi2ss %rax, %xmm1 + cvtsi2sd %rax, %xmm1 + cvtsi2ssq %rax, %xmm1 + cvtsi2sdq %rax, %xmm1 + cvtsi2ss (%rax), %xmm1 + cvtsi2sd (%rax), %xmm1 + cvtsi2ssl (%rax), %xmm1 + cvtsi2sdl (%rax), %xmm1 + cvtsi2ssq (%rax), %xmm1 + cvtsi2sdq (%rax), %xmm1 haddps 0x12345678(%rip),%xmm1 movdqu %xmm1,0x12345678(%rip) movdqu 0x12345678(%rip),%xmm1 @@ -105,6 +119,22 @@ cvtdq2pd xmm1,QWORD PTR [rip+0x12345678] cvtpd2dq xmm1,XMMWORD PTR [rip+0x12345678] cvtps2pd xmm1,QWORD PTR [rip+0x12345678] cvttps2dq xmm1,XMMWORD PTR [rip+0x12345678] +cvtsi2ss xmm1,eax +cvtsi2sd xmm1,eax +cvtsi2ssd xmm1,eax +cvtsi2sdd xmm1,eax +cvtsi2ss xmm1,rax +cvtsi2sd xmm1,rax +cvtsi2ssq xmm1,rax +cvtsi2sdq xmm1,rax +cvtsi2ss xmm1,DWORD PTR [rax] +cvtsi2sd xmm1,DWORD PTR [rax] +cvtsi2ssd xmm1,DWORD PTR [rax] +cvtsi2sdd xmm1,DWORD PTR [rax] +cvtsi2ss xmm1,QWORD PTR [rax] +cvtsi2sd xmm1,QWORD PTR [rax] +cvtsi2ssq xmm1,QWORD PTR [rax] +cvtsi2sdq xmm1,QWORD PTR [rax] haddps xmm1,XMMWORD PTR [rip+0x12345678] movdqu XMMWORD PTR [rip+0x12345678],xmm1 movdqu xmm1,XMMWORD PTR [rip+0x12345678] diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 430330b99b..2ccdb0c5e2 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,11 @@ +2007-12-31 H.J. Lu + + * i386-dis.c (prefix_table): Use "%LQ" on cvtpi2ps/cvtsi2sd. + (putop): Handle '%' and "LQ". + + * i386-opc.tbl: Remove IgnoreSize from cvtpi2ps/cvtsi2sd. + * i386-tbl.h: Regenerated. + 2007-12-28 H.J. Lu * i386-gen.c (cpu_flag_init): Add CpuSSE4_1_Or_5 to diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 3fc7058e90..b55e089c29 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -718,15 +718,15 @@ struct dis386 { 'A' => print 'b' if no register operands or suffix_always is true 'B' => print 'b' if suffix_always is true 'C' => print 's' or 'l' ('w' or 'd' in Intel mode) depending on operand - . size prefix + size prefix 'D' => print 'w' if no register operands or 'w', 'l' or 'q', if - . suffix_always is true + suffix_always is true 'E' => print 'e' if 32-bit form of jcxz 'F' => print 'w' or 'l' depending on address size prefix (loop insns) 'G' => print 'w' or 'l' depending on operand size prefix (i/o insns) 'H' => print ",pt" or ",pn" branch hint 'I' => honor following macro letter even in Intel mode (implemented only - . for some of the macro letters) + for some of the macro letters) 'J' => print 'l' 'K' => print 'd' or 'q' if rex prefix is present. 'L' => print 'l' if suffix_always is true @@ -734,9 +734,9 @@ struct dis386 { 'N' => print 'n' if instruction has no wait "prefix" 'O' => print 'd' or 'o' (or 'q' in Intel mode) 'P' => print 'w', 'l' or 'q' if instruction has an operand size prefix, - . or suffix_always is true. print 'q' if rex prefix is present. - 'Q' => print 'w', 'l' or 'q' if no register operands or suffix_always - . is true + or suffix_always is true. print 'q' if rex prefix is present. + 'Q' => print 'w', 'l' or 'q' for memory operand or suffix_always + is true 'R' => print 'w', 'l' or 'q' ('d' for 'l' and 'e' in Intel mode) 'S' => print 'w', 'l' or 'q' if suffix_always is true 'T' => print 'q' in 64bit mode and behave as 'P' otherwise @@ -748,6 +748,11 @@ struct dis386 { suffix_always is true. 'Z' => print 'q' in 64bit mode and behave as 'L' otherwise '!' => change condition from true to false or from false to true. + '%' => add 1 upper case letter to the macro. + + 2 upper case letter macros: + 'LQ' => print 'l' ('d' in Intel mode) or 'q' for memory operand + or suffix_always is true Many of the above letters print nothing in Intel mode. See "putop" for the details. @@ -1830,9 +1835,9 @@ static const struct dis386 prefix_table[][4] = { /* PREFIX_0F2A */ { { "cvtpi2ps", { XM, EMCq } }, - { "cvtsi2ssY", { XM, Ev } }, + { "cvtsi2ss%LQ", { XM, Ev } }, { "cvtpi2pd", { XM, EMCq } }, - { "cvtsi2sdY", { XM, Ev } }, + { "cvtsi2sd%LQ", { XM, Ev } }, }, /* PREFIX_0F2B */ @@ -5965,6 +5970,14 @@ putop (const char *template, int sizeflag) const char *p; int alt = 0; int cond = 1; + unsigned int l = 0, len = 1; + char last[4]; + +#define SAVE_LAST(c) \ + if (l < len && l < sizeof (last)) \ + last[l++] = c; \ + else \ + abort (); for (p = template; *p; p++) { @@ -5973,6 +5986,9 @@ putop (const char *template, int sizeflag) default: *obufp++ = *p; break; + case '%': + len++; + break; case '!': cond = 0; break; @@ -6109,7 +6125,14 @@ putop (const char *template, int sizeflag) break; } /* Fall through. */ + goto case_L; case 'L': + if (l != 0 || len != 1) + { + SAVE_LAST (*p); + break; + } +case_L: if (intel_syntax) break; if (sizeflag & SUFFIX_ALWAYS) @@ -6175,22 +6198,45 @@ putop (const char *template, int sizeflag) break; } /* Fall through. */ + goto case_Q; case 'Q': - if (intel_syntax && !alt) - break; - USED_REX (REX_W); - if (modrm.mod != 3 || (sizeflag & SUFFIX_ALWAYS)) + if (l == 0 && len == 1) { - if (rex & REX_W) - *obufp++ = 'q'; - else +case_Q: + if (intel_syntax && !alt) + break; + USED_REX (REX_W); + if (modrm.mod != 3 || (sizeflag & SUFFIX_ALWAYS)) { - if (sizeflag & DFLAG) - *obufp++ = intel_syntax ? 'd' : 'l'; + if (rex & REX_W) + *obufp++ = 'q'; else - *obufp++ = 'w'; + { + if (sizeflag & DFLAG) + *obufp++ = intel_syntax ? 'd' : 'l'; + else + *obufp++ = 'w'; + } + used_prefixes |= (prefixes & PREFIX_DATA); } - used_prefixes |= (prefixes & PREFIX_DATA); + } + else + { + if (l != 1 || len != 2 || last[0] != 'L') + { + SAVE_LAST (*p); + break; + } + if (intel_syntax + || (modrm.mod == 3 && !(sizeflag & SUFFIX_ALWAYS))) + break; + if ((rex & REX_W)) + { + USED_REX (REX_W); + *obufp++ = 'q'; + } + else + *obufp++ = 'l'; } break; case 'R': diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index 8f21a7c397..8f43249973 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -1066,7 +1066,7 @@ cmpss, 3, 0xf30fc2, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No comiss, 2, 0xf2f, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM } cvtpi2ps, 2, 0xf2a, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegXMM } cvtps2pi, 2, 0xf2d, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegMMX } -cvtsi2ss, 2, 0xf30f2a, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM } +cvtsi2ss, 2, 0xf30f2a, None, 2, CpuSSE, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM } cvtss2si, 2, 0xf30f2d, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 } cvttps2pi, 2, 0xf2c, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegMMX } cvttss2si, 2, 0xf30f2c, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 } @@ -1173,7 +1173,7 @@ cmpsd, 2, 0xa7, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ld cmpsd, 3, 0xf20fc2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM } comisd, 2, 0x660f2f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM } cvtpi2pd, 2, 0x660f2a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegXMM } -cvtsi2sd, 2, 0xf20f2a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM } +cvtsi2sd, 2, 0xf20f2a, None, 2, CpuSSE2, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM } divpd, 2, 0x660f5e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM } divsd, 2, 0xf20f5e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM } maxpd, 2, 0x660f5f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM } diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h index 45b04b31f7..a6544dc07b 100644 --- a/opcodes/i386-tbl.h +++ b/opcodes/i386-tbl.h @@ -7371,7 +7371,7 @@ const template i386_optab[] = { "cvtsi2ss", 2, 0xf30f2a, None, 2, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, + { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, @@ -8373,7 +8373,7 @@ const template i386_optab[] = { "cvtsi2sd", 2, 0xf20f2a, None, 2, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, + { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,