diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-05-25 10:25:50 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-05-25 10:26:13 -0700 |
commit | 293f5f65435c4d309cbf463e941a8bd5ae50c02d (patch) | |
tree | c0c93348eac3447290bec0b2ac2e36ce64e4972a /gas/testsuite | |
parent | e6cc316af931911da20249e19f9342e5cf8aeeff (diff) | |
download | gdb-293f5f65435c4d309cbf463e941a8bd5ae50c02d.zip gdb-293f5f65435c4d309cbf463e941a8bd5ae50c02d.tar.gz gdb-293f5f65435c4d309cbf463e941a8bd5ae50c02d.tar.bz2 |
Reimplement .no87/.nommx/.nosse/.noavx directives
Move all .noXXX directives to cpu_noarch.
gas/
* config/tc-i386.c (arch_entry): Remove negated.
(noarch_entry): New struct.
(cpu_arch): Updated. Remove .no87, .nommx, .nosse and .noavx.
(cpu_noarch): New.
(set_cpu_arch): Check cpu_noarch after cpu_arch.
(md_parse_option): Allow -march=+nosse. Check cpu_noarch after
cpu_arch.
(output_message): New function.
(show_arch): Use it. Handle cpu_noarch.
* testsuite/gas/i386/i386.exp: Run nommx-1, nommx-2, nommx-3,
nosse-1, nosse-2, nosse-3, noavx-1 and noavx-2.
* testsuite/gas/i386/noavx-1.l: New file.
* testsuite/gas/i386/noavx-1.s: Likewise.
* testsuite/gas/i386/noavx-2.s: Likewise.
* testsuite/gas/i386/noavx-2.l: Likewise.
* testsuite/gas/i386/nommx-1.s: Likewise.
* testsuite/gas/i386/nommx-1.l: Likewise.
* testsuite/gas/i386/nommx-2.s: Likewise.
* testsuite/gas/i386/nommx-2.l: Likewise.
* testsuite/gas/i386/nommx-3.s: Likewise.
* testsuite/gas/i386/nommx-3.l: Likewise.
* testsuite/gas/i386/nosse-1.s: Likewise.
* testsuite/gas/i386/nosse-1.l: Likewise.
* testsuite/gas/i386/nosse-2.s: Likewise.
* testsuite/gas/i386/nosse-2.l: Likewise.
* testsuite/gas/i386/nosse-3.s: Likewise.
* testsuite/gas/i386/nosse-3.l: Likewise.
opcodes/
* i386-gen.c (cpu_flag_init): Rename CPU_ANY87_FLAGS to
CPU_ANY_X87_FLAGS. Add CPU_ANY_MMX_FLAGS.
* i386-init.h: Regenerated.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/noavx-1.l | 13 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/noavx-1.s | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/noavx-2.l | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/noavx-2.s | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nommx-1.l | 21 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nommx-1.s | 14 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nommx-2.l | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nommx-2.s | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nommx-3.l | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nommx-3.s | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nosse-1.l | 13 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nosse-1.s | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nosse-2.l | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nosse-2.s | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nosse-3.l | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/nosse-3.s | 3 |
17 files changed, 135 insertions, 0 deletions
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index a18200e..716ec43 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -165,6 +165,14 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "387" run_list_test "no87" "-al" run_list_test "no87-2" "-march=i686+no87 -al" + run_list_test "nommx-1" "-al" + run_list_test "nommx-2" "-march=core+nommx -al" + run_list_test "nommx-3" "-march=+nommx -al" + run_list_test "nosse-1" "-al" + run_list_test "nosse-2" "-march=core+nosse -al" + run_list_test "nosse-3" "-march=+nosse -al" + run_list_test "noavx-1" "-al" + run_list_test "noavx-2" "-march=+noavx -al" run_dump_test "xsave" run_dump_test "xsave-intel" run_dump_test "aes" diff --git a/gas/testsuite/gas/i386/noavx-1.l b/gas/testsuite/gas/i386/noavx-1.l new file mode 100644 index 0000000..f4e2840 --- /dev/null +++ b/gas/testsuite/gas/i386/noavx-1.l @@ -0,0 +1,13 @@ +.*: Assembler messages: +.*:4: Error: .*generic.* +.*:8: Error: .*noavx.* +GAS LISTING .* +#... +[ ]*1[ ]+\# Test \.arch \.noavx +[ ]*2[ ]+\.text +[ ]*3[ ]+\.arch generic32 +[ ]*4[ ]+vzeroupper +[ ]*5[ ]+\.arch \.avx +[ ]*6[ ]+\?\?\?\? C5F877 vzeroupper +[ ]*7[ ]+\.arch \.noavx +[ ]*8[ ]+vzeroupper diff --git a/gas/testsuite/gas/i386/noavx-1.s b/gas/testsuite/gas/i386/noavx-1.s new file mode 100644 index 0000000..759b429 --- /dev/null +++ b/gas/testsuite/gas/i386/noavx-1.s @@ -0,0 +1,8 @@ +# Test .arch .noavx + .text + .arch generic32 + vzeroupper + .arch .avx + vzeroupper + .arch .noavx + vzeroupper diff --git a/gas/testsuite/gas/i386/noavx-2.l b/gas/testsuite/gas/i386/noavx-2.l new file mode 100644 index 0000000..32cc140 --- /dev/null +++ b/gas/testsuite/gas/i386/noavx-2.l @@ -0,0 +1,7 @@ +.*: Assembler messages: +.*:3: Error: .*noavx.* +GAS LISTING .* +#... +[ ]*1[ ]+\# Test -march=\+noavx +[ ]*2[ ]+\.text +[ ]*3[ ]+vzeroupper diff --git a/gas/testsuite/gas/i386/noavx-2.s b/gas/testsuite/gas/i386/noavx-2.s new file mode 100644 index 0000000..82ffa3e --- /dev/null +++ b/gas/testsuite/gas/i386/noavx-2.s @@ -0,0 +1,3 @@ +# Test -march=+noavx + .text + vzeroupper diff --git a/gas/testsuite/gas/i386/nommx-1.l b/gas/testsuite/gas/i386/nommx-1.l new file mode 100644 index 0000000..2b7a6ca --- /dev/null +++ b/gas/testsuite/gas/i386/nommx-1.l @@ -0,0 +1,21 @@ +.*: Assembler messages: +.*:4: Error: .*generic.* +.*:7: Error: .*mmx.* +.*:10: Error: .*3dnow.* +.*:14: Error: .*nommx.* +GAS LISTING .* +#... +[ ]*1[ ]+\# Test \.arch \.nommx +[ ]*2[ ]+\.text +[ ]*3[ ]+\.arch generic32 +[ ]*4[ ]+emms +[ ]*5[ ]+\.arch \.mmx +[ ]*6[ ]+\?\?\?\? 0F7EC0 movd %mm0, %eax +[ ]*7[ ]+femms +[ ]*8[ ]+\.arch \.3dnow +[ ]*9[ ]+\?\?\?\? 0F0E femms +[ ]*10[ ]+pswapd %mm1,%mm0 +[ ]*11[ ]+\.arch \.3dnowa +[ ]*12[ ]+\?\?\?\? 0F0FC1BB pswapd %mm1,%mm0 +[ ]*13[ ]+\.arch \.nommx +[ ]*14[ ]+emms diff --git a/gas/testsuite/gas/i386/nommx-1.s b/gas/testsuite/gas/i386/nommx-1.s new file mode 100644 index 0000000..f87edda --- /dev/null +++ b/gas/testsuite/gas/i386/nommx-1.s @@ -0,0 +1,14 @@ +# Test .arch .nommx + .text + .arch generic32 + emms + .arch .mmx + movd %mm0, %eax + femms + .arch .3dnow + femms + pswapd %mm1,%mm0 + .arch .3dnowa + pswapd %mm1,%mm0 + .arch .nommx + emms diff --git a/gas/testsuite/gas/i386/nommx-2.l b/gas/testsuite/gas/i386/nommx-2.l new file mode 100644 index 0000000..a94b0a8 --- /dev/null +++ b/gas/testsuite/gas/i386/nommx-2.l @@ -0,0 +1,7 @@ +.*: Assembler messages: +.*:3: Error: .*nommx.* +GAS LISTING .* +#... +[ ]*1[ ]+\# Test -march=\.\.\.\+nommx +[ ]*2[ ]+\.text +[ ]*3[ ]+emms diff --git a/gas/testsuite/gas/i386/nommx-2.s b/gas/testsuite/gas/i386/nommx-2.s new file mode 100644 index 0000000..266ab8d --- /dev/null +++ b/gas/testsuite/gas/i386/nommx-2.s @@ -0,0 +1,3 @@ +# Test -march=...+nommx + .text + emms diff --git a/gas/testsuite/gas/i386/nommx-3.l b/gas/testsuite/gas/i386/nommx-3.l new file mode 100644 index 0000000..0d2e1f1 --- /dev/null +++ b/gas/testsuite/gas/i386/nommx-3.l @@ -0,0 +1,7 @@ +.*: Assembler messages: +.*:3: Error: .*nommx.* +GAS LISTING .* +#... +[ ]*1[ ]+\# Test -march=\+nommx +[ ]*2[ ]+\.text +[ ]*3[ ]+emms diff --git a/gas/testsuite/gas/i386/nommx-3.s b/gas/testsuite/gas/i386/nommx-3.s new file mode 100644 index 0000000..4641c1d --- /dev/null +++ b/gas/testsuite/gas/i386/nommx-3.s @@ -0,0 +1,3 @@ +# Test -march=+nommx + .text + emms diff --git a/gas/testsuite/gas/i386/nosse-1.l b/gas/testsuite/gas/i386/nosse-1.l new file mode 100644 index 0000000..486241b --- /dev/null +++ b/gas/testsuite/gas/i386/nosse-1.l @@ -0,0 +1,13 @@ +.*: Assembler messages: +.*:4: Error: .*generic.* +.*:8: Error: .*nosse.* +GAS LISTING .* +#... +[ ]*1[ ]+\# Test \.arch \.nosse +[ ]*2[ ]+\.text +[ ]*3[ ]+\.arch generic32 +[ ]*4[ ]+lfence +[ ]*5[ ]+\.arch \.sse2 +[ ]*6[ ]+\?\?\?\? 0FAEE8 lfence +[ ]*7[ ]+\.arch \.nosse +[ ]*8[ ]+lfence diff --git a/gas/testsuite/gas/i386/nosse-1.s b/gas/testsuite/gas/i386/nosse-1.s new file mode 100644 index 0000000..27f2528 --- /dev/null +++ b/gas/testsuite/gas/i386/nosse-1.s @@ -0,0 +1,8 @@ +# Test .arch .nosse + .text + .arch generic32 + lfence + .arch .sse2 + lfence + .arch .nosse + lfence diff --git a/gas/testsuite/gas/i386/nosse-2.l b/gas/testsuite/gas/i386/nosse-2.l new file mode 100644 index 0000000..45652b5 --- /dev/null +++ b/gas/testsuite/gas/i386/nosse-2.l @@ -0,0 +1,7 @@ +.*: Assembler messages: +.*:3: Error: .*nosse.* +GAS LISTING .* +#... +[ ]*1[ ]+\# Test -march=\.\.\.\+nosse +[ ]*2[ ]+\.text +[ ]*3[ ]+lfence diff --git a/gas/testsuite/gas/i386/nosse-2.s b/gas/testsuite/gas/i386/nosse-2.s new file mode 100644 index 0000000..bceb0c4 --- /dev/null +++ b/gas/testsuite/gas/i386/nosse-2.s @@ -0,0 +1,3 @@ +# Test -march=...+nosse + .text + lfence diff --git a/gas/testsuite/gas/i386/nosse-3.l b/gas/testsuite/gas/i386/nosse-3.l new file mode 100644 index 0000000..6626928 --- /dev/null +++ b/gas/testsuite/gas/i386/nosse-3.l @@ -0,0 +1,7 @@ +.*: Assembler messages: +.*:3: Error: .*nosse.* +GAS LISTING .* +#... +[ ]*1[ ]+\# Test -march=\+nosse +[ ]*2[ ]+\.text +[ ]*3[ ]+lfence diff --git a/gas/testsuite/gas/i386/nosse-3.s b/gas/testsuite/gas/i386/nosse-3.s new file mode 100644 index 0000000..b2ba5f7 --- /dev/null +++ b/gas/testsuite/gas/i386/nosse-3.s @@ -0,0 +1,3 @@ +# Test -march=+nosse + .text + lfence |