diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2008-04-10 17:53:40 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2008-04-10 17:53:40 +0000 |
commit | daf50ae75d6531256d833e273eeec189ce8a1166 (patch) | |
tree | 4c010e5ccfde18ff541453d26b261d896a707b63 /gas/testsuite | |
parent | 112b7c5071b75bffeae19c11ca923e700cf36e16 (diff) | |
download | gdb-daf50ae75d6531256d833e273eeec189ce8a1166.zip gdb-daf50ae75d6531256d833e273eeec189ce8a1166.tar.gz gdb-daf50ae75d6531256d833e273eeec189ce8a1166.tar.bz2 |
gas/
2008-04-10 H.J. Lu <hongjiu.lu@intel.com>
* NEWS: Mention -msse-check=[none|error|warning].
* config/tc-i386.c (sse_check): New.
(OPTION_MSSE_CHECK): Likewise.
(md_assemble): Check SSE instructions if needed.
(md_longopts): Add -msse-check.
(md_parse_option): Handle OPTION_MSSE_CHECK.
(md_show_usage): Show -msse-check=[none|error|warning].
* doc/c-i386.texi: Document -msse-check=[none|error|warning].
gas/testsuite/
2008-04-10 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/i386.exp: Run sse-check, sse-check-warn,
sse-check-error, x86-64-sse-check, x86-64-sse-check-warn and
x86-64-sse-check-error.
* gas/i386/sse-check.d: New.
* gas/i386/sse-check.s: Likewise.
* gas/i386/sse-check-error.l: Likewise.
* gas/i386/sse-check-error.s: Likewise.
* gas/i386/sse-check-warn.d: Likewise.
* gas/i386/sse-check-warn.e: Likewise.
* gas/i386/x86-64-sse-check.d: Likewise.
* gas/i386/x86-64-sse-check-error.l: Likewise.
* gas/i386/x86-64-sse-check-error.s: Likewise.
* gas/i386/x86-64-sse-check-warn.d: Likewise.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/ChangeLog | 17 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/sse-check-error.l | 40 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/sse-check-error.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/sse-check-warn.d | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/sse-check-warn.e | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/sse-check.d | 16 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/sse-check.s | 20 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-sse-check-error.l | 40 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-sse-check-error.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-sse-check-warn.d | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-sse-check.d | 17 |
12 files changed, 201 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index bc31103..152e4f5 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,20 @@ +2008-04-10 H.J. Lu <hongjiu.lu@intel.com> + + * gas/i386/i386.exp: Run sse-check, sse-check-warn, + sse-check-error, x86-64-sse-check, x86-64-sse-check-warn and + x86-64-sse-check-error. + + * gas/i386/sse-check.d: New. + * gas/i386/sse-check.s: Likewise. + * gas/i386/sse-check-error.l: Likewise. + * gas/i386/sse-check-error.s: Likewise. + * gas/i386/sse-check-warn.d: Likewise. + * gas/i386/sse-check-warn.e: Likewise. + * gas/i386/x86-64-sse-check.d: Likewise. + * gas/i386/x86-64-sse-check-error.l: Likewise. + * gas/i386/x86-64-sse-check-error.s: Likewise. + * gas/i386/x86-64-sse-check-warn.d: Likewise. + 2008-04-10 Santiago Urueña <suruena@gmail.com> * gas/all/gas.exp: Check the performance of the -ag command line diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 4111fe5..18d6a7d 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -124,6 +124,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "avx-intel" run_dump_test "sse2avx" run_list_test "inval-avx" "-al" + run_dump_test "sse-check" + run_dump_test "sse-check-warn" + run_list_test "sse-check-error" "-msse-check=error -I${srcdir}/$subdir -al" # These tests require support for 8 and 16 bit relocs, # so we only run them for ELF and COFF targets. @@ -250,6 +253,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_dump_test "x86-64-avx-intel" run_dump_test "x86-64-sse2avx" run_list_test "x86-64-inval-avx" "-al" + run_dump_test "x86-64-sse-check" + run_dump_test "x86-64-sse-check-warn" + run_list_test "x86-64-sse-check-error" "-msse-check=error -I${srcdir}/$subdir -al" if { ![istarget "*-*-aix*"] && ![istarget "*-*-beos*"] diff --git a/gas/testsuite/gas/i386/sse-check-error.l b/gas/testsuite/gas/i386/sse-check-error.l new file mode 100644 index 0000000..bd1c4f6 --- /dev/null +++ b/gas/testsuite/gas/i386/sse-check-error.l @@ -0,0 +1,40 @@ +.*: Assembler messages: +.*:7: Error: .* +.*:10: Error: .* +.*:13: Error: .* +.*:16: Error: .* +.*:19: Error: .* +.*:20: Error: .* +GAS LISTING .* + + +[ ]*1[ ]+\.include "sse-check\.s" +[ ]*1[ ]+\# Check SSE instructions +[ ]*2[ ]+ +[ ]*3[ ]+\.text +[ ]*4[ ]+_start: +[ ]*5[ ]+ +[ ]*6[ ]+\# SSE instruction +[ ]*7[ ]+\?\?\?\? 0F58CA addps %xmm2,%xmm1 +\*\*\*\* Error:SSE instruction `addps' is used +[ ]*8[ ]+ +[ ]*9[ ]+\# SSE2 instruction +[ ]*10[ ]+\?\?\?\? 660F58CA addpd %xmm2,%xmm1 +\*\*\*\* Error:SSE instruction `addpd' is used +[ ]*11[ ]+ +[ ]*12[ ]+\# SSE3 instruction +[ ]*13[ ]+\?\?\?\? 660FD0CA addsubpd %xmm2,%xmm1 +\*\*\*\* Error:SSE instruction `addsubpd' is used +[ ]*14[ ]+ +[ ]*15[ ]+\# SSSE3 instruction +[ ]*16[ ]+\?\?\?\? 660F3801 phaddw %xmm2,%xmm1 +\*\*\*\* Error:SSE instruction `phaddw' is used +[ ]*16[ ]+CA +[ ]*17[ ]+ +[ ]*18[ ]+\# SSE4 instructions +[ ]*19[ ]+\?\?\?\? 660F3815 blendvpd %xmm0,%xmm1,%xmm0 +\*\*\*\* Error:SSE instruction `blendvpd' is used +[ ]*19[ ]+C1 +[ ]*20[ ]+\?\?\?\? 660F3837 pcmpgtq %xmm1,%xmm0 +\*\*\*\* Error:SSE instruction `pcmpgtq' is used +[ ]*20[ ]+C1 diff --git a/gas/testsuite/gas/i386/sse-check-error.s b/gas/testsuite/gas/i386/sse-check-error.s new file mode 100644 index 0000000..450ff1f --- /dev/null +++ b/gas/testsuite/gas/i386/sse-check-error.s @@ -0,0 +1 @@ +.include "sse-check.s" diff --git a/gas/testsuite/gas/i386/sse-check-warn.d b/gas/testsuite/gas/i386/sse-check-warn.d new file mode 100644 index 0000000..0b96b15 --- /dev/null +++ b/gas/testsuite/gas/i386/sse-check-warn.d @@ -0,0 +1,18 @@ +#source: sse-check.s +#as: -msse-check=warning +#stderr: sse-check-warn.e +#objdump: -dw +#name: i386 SSE check (warning) + +.*: file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: 0f 58 ca addps %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 58 ca addpd %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f d0 ca addsubpd %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 38 01 ca phaddw %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 38 15 c1 blendvpd %xmm0,%xmm1,%xmm0 +[ ]*[a-f0-9]+: 66 0f 38 37 c1 pcmpgtq %xmm1,%xmm0 +#pass diff --git a/gas/testsuite/gas/i386/sse-check-warn.e b/gas/testsuite/gas/i386/sse-check-warn.e new file mode 100644 index 0000000..26b2001 --- /dev/null +++ b/gas/testsuite/gas/i386/sse-check-warn.e @@ -0,0 +1,7 @@ +.*: Assembler messages: +.*:7: Warning: SSE instruction `addps' is used +.*:10: Warning: SSE instruction `addpd' is used +.*:13: Warning: SSE instruction `addsubpd' is used +.*:16: Warning: SSE instruction `phaddw' is used +.*:19: Warning: SSE instruction `blendvpd' is used +.*:20: Warning: SSE instruction `pcmpgtq' is used diff --git a/gas/testsuite/gas/i386/sse-check.d b/gas/testsuite/gas/i386/sse-check.d new file mode 100644 index 0000000..9329638 --- /dev/null +++ b/gas/testsuite/gas/i386/sse-check.d @@ -0,0 +1,16 @@ +#as: -msse-check=none +#objdump: -dw +#name: i386 SSE check (none) + +.*: file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: 0f 58 ca addps %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 58 ca addpd %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f d0 ca addsubpd %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 38 01 ca phaddw %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 38 15 c1 blendvpd %xmm0,%xmm1,%xmm0 +[ ]*[a-f0-9]+: 66 0f 38 37 c1 pcmpgtq %xmm1,%xmm0 +#pass diff --git a/gas/testsuite/gas/i386/sse-check.s b/gas/testsuite/gas/i386/sse-check.s new file mode 100644 index 0000000..7e5d208 --- /dev/null +++ b/gas/testsuite/gas/i386/sse-check.s @@ -0,0 +1,20 @@ +# Check SSE instructions + + .text +_start: + +# SSE instruction + addps %xmm2,%xmm1 + +# SSE2 instruction + addpd %xmm2,%xmm1 + +# SSE3 instruction + addsubpd %xmm2,%xmm1 + +# SSSE3 instruction + phaddw %xmm2,%xmm1 + +# SSE4 instructions + blendvpd %xmm0,%xmm1,%xmm0 + pcmpgtq %xmm1,%xmm0 diff --git a/gas/testsuite/gas/i386/x86-64-sse-check-error.l b/gas/testsuite/gas/i386/x86-64-sse-check-error.l new file mode 100644 index 0000000..bd1c4f6 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-sse-check-error.l @@ -0,0 +1,40 @@ +.*: Assembler messages: +.*:7: Error: .* +.*:10: Error: .* +.*:13: Error: .* +.*:16: Error: .* +.*:19: Error: .* +.*:20: Error: .* +GAS LISTING .* + + +[ ]*1[ ]+\.include "sse-check\.s" +[ ]*1[ ]+\# Check SSE instructions +[ ]*2[ ]+ +[ ]*3[ ]+\.text +[ ]*4[ ]+_start: +[ ]*5[ ]+ +[ ]*6[ ]+\# SSE instruction +[ ]*7[ ]+\?\?\?\? 0F58CA addps %xmm2,%xmm1 +\*\*\*\* Error:SSE instruction `addps' is used +[ ]*8[ ]+ +[ ]*9[ ]+\# SSE2 instruction +[ ]*10[ ]+\?\?\?\? 660F58CA addpd %xmm2,%xmm1 +\*\*\*\* Error:SSE instruction `addpd' is used +[ ]*11[ ]+ +[ ]*12[ ]+\# SSE3 instruction +[ ]*13[ ]+\?\?\?\? 660FD0CA addsubpd %xmm2,%xmm1 +\*\*\*\* Error:SSE instruction `addsubpd' is used +[ ]*14[ ]+ +[ ]*15[ ]+\# SSSE3 instruction +[ ]*16[ ]+\?\?\?\? 660F3801 phaddw %xmm2,%xmm1 +\*\*\*\* Error:SSE instruction `phaddw' is used +[ ]*16[ ]+CA +[ ]*17[ ]+ +[ ]*18[ ]+\# SSE4 instructions +[ ]*19[ ]+\?\?\?\? 660F3815 blendvpd %xmm0,%xmm1,%xmm0 +\*\*\*\* Error:SSE instruction `blendvpd' is used +[ ]*19[ ]+C1 +[ ]*20[ ]+\?\?\?\? 660F3837 pcmpgtq %xmm1,%xmm0 +\*\*\*\* Error:SSE instruction `pcmpgtq' is used +[ ]*20[ ]+C1 diff --git a/gas/testsuite/gas/i386/x86-64-sse-check-error.s b/gas/testsuite/gas/i386/x86-64-sse-check-error.s new file mode 100644 index 0000000..450ff1f --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-sse-check-error.s @@ -0,0 +1 @@ +.include "sse-check.s" diff --git a/gas/testsuite/gas/i386/x86-64-sse-check-warn.d b/gas/testsuite/gas/i386/x86-64-sse-check-warn.d new file mode 100644 index 0000000..691185c --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-sse-check-warn.d @@ -0,0 +1,18 @@ +#source: sse-check.s +#as: -msse-check=warning +#stderr: sse-check-warn.e +#objdump: -dw +#name: x86-64 SSE check (warning) + +.*: file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: 0f 58 ca addps %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 58 ca addpd %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f d0 ca addsubpd %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 38 01 ca phaddw %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 38 15 c1 blendvpd %xmm0,%xmm1,%xmm0 +[ ]*[a-f0-9]+: 66 0f 38 37 c1 pcmpgtq %xmm1,%xmm0 +#pass diff --git a/gas/testsuite/gas/i386/x86-64-sse-check.d b/gas/testsuite/gas/i386/x86-64-sse-check.d new file mode 100644 index 0000000..9ca0c79 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-sse-check.d @@ -0,0 +1,17 @@ +#source: sse-check.s +#as: -msse-check=none +#objdump: -dw +#name: x86-64 SSE check (none) + +.*: file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: 0f 58 ca addps %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 58 ca addpd %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f d0 ca addsubpd %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 38 01 ca phaddw %xmm2,%xmm1 +[ ]*[a-f0-9]+: 66 0f 38 15 c1 blendvpd %xmm0,%xmm1,%xmm0 +[ ]*[a-f0-9]+: 66 0f 38 37 c1 pcmpgtq %xmm1,%xmm0 +#pass |