aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2016-05-25 10:25:50 -0700
committerH.J. Lu <hjl.tools@gmail.com>2016-05-25 10:26:13 -0700
commit293f5f65435c4d309cbf463e941a8bd5ae50c02d (patch)
treec0c93348eac3447290bec0b2ac2e36ce64e4972a /gas/testsuite
parente6cc316af931911da20249e19f9342e5cf8aeeff (diff)
downloadgdb-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.exp8
-rw-r--r--gas/testsuite/gas/i386/noavx-1.l13
-rw-r--r--gas/testsuite/gas/i386/noavx-1.s8
-rw-r--r--gas/testsuite/gas/i386/noavx-2.l7
-rw-r--r--gas/testsuite/gas/i386/noavx-2.s3
-rw-r--r--gas/testsuite/gas/i386/nommx-1.l21
-rw-r--r--gas/testsuite/gas/i386/nommx-1.s14
-rw-r--r--gas/testsuite/gas/i386/nommx-2.l7
-rw-r--r--gas/testsuite/gas/i386/nommx-2.s3
-rw-r--r--gas/testsuite/gas/i386/nommx-3.l7
-rw-r--r--gas/testsuite/gas/i386/nommx-3.s3
-rw-r--r--gas/testsuite/gas/i386/nosse-1.l13
-rw-r--r--gas/testsuite/gas/i386/nosse-1.s8
-rw-r--r--gas/testsuite/gas/i386/nosse-2.l7
-rw-r--r--gas/testsuite/gas/i386/nosse-2.s3
-rw-r--r--gas/testsuite/gas/i386/nosse-3.l7
-rw-r--r--gas/testsuite/gas/i386/nosse-3.s3
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