aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorNelson Chu <nelson.chu@sifive.com>2020-11-20 14:45:32 +0800
committerNelson Chu <nelson.chu@sifive.com>2020-12-01 15:04:03 +0800
commitd541518bec90502134ea6b348cb2d4f3363d1c70 (patch)
treeb524b61fd9d37397cbc1be5d6cffb3694f2aca01 /gas/testsuite
parent56af5a30b8efa34ce30f7d93da7dc981dda82f61 (diff)
downloadgdb-d541518bec90502134ea6b348cb2d4f3363d1c70.zip
gdb-d541518bec90502134ea6b348cb2d4f3363d1c70.tar.gz
gdb-d541518bec90502134ea6b348cb2d4f3363d1c70.tar.bz2
RISC-V: Minor cleanup and testcases improvement for arch string parser.
Re-indent the related codes, unify and improve the related error messages and comments. Besies, also re-write the testcases to cover more cases. bfd/ * elfxx-riscv.c: Re-indent codes, unify and improve the error messages and comments. (riscv_parse_prefixed_ext): Stop parsing the prefixed class extensions if the class is RV_ISA_CLASS_UNKNOWN, I get internal errors before adding this check for march-fail-porder* testcases. (riscv_parse_subset): Move the rv32 with q checking in front. * elfxx-riscv.h: Likewise. gas/ (These are new testcases that cover more cases) * testsuite/gas/riscv/march-fail-base-01.d: The first extension must be e, i or g. * testsuite/gas/riscv/march-fail-base-01.l: Likewise. * testsuite/gas/riscv/march-fail-base-02.d: rv64e is an invalid base ISA. * testsuite/gas/riscv/march-fail-base-02.l: Likewise. * testsuite/gas/riscv/march-fail-order-std.d: Check orders of standard extensions. * testsuite/gas/riscv/march-fail-order-std.l: Likewise. * testsuite/gas/riscv/march-fail-order-x.d: Check orders of prefixed x extensions. * testsuite/gas/riscv/march-fail-order-x.l: Likewise. * testsuite/gas/riscv/march-fail-porder-x-std.d: Check orders when standard and prefixed extensions are set at the same time. * testsuite/gas/riscv/march-fail-porder-x-z.d: Likewise. * testsuite/gas/riscv/march-fail-porder-z-std.d: Likewise. * testsuite/gas/riscv/march-fail-porder.l: Likewise. * testsuite/gas/riscv/march-fail-single-char-s.d: Only standard extensions can use single char. * testsuite/gas/riscv/march-fail-single-char-x.d: Likewise. * testsuite/gas/riscv/march-fail-single-char-z.d: Likewise. * testsuite/gas/riscv/march-fail-single-char.l: Likewise. * testsuite/gas/riscv/march-fail-unknown-s.d: All extensions should be known, except the non-standard x extensions. * testsuite/gas/riscv/march-fail-unknown-std.d: Likewise. * testsuite/gas/riscv/march-fail-unknown-std.l: Likewise. * testsuite/gas/riscv/march-fail-unknown-z.d: Likewise. * testsuite/gas/riscv/march-fail-unknown.l: Likewise. * testsuite/gas/riscv/march-fail-uppercase-base.d: Do not allow any uppercase in the arch string. * testsuite/gas/riscv/march-fail-uppercase-std.d: Likewise. * testsuite/gas/riscv/march-fail-uppercase-z.d: Likewise. * testsuite/gas/riscv/march-fail-uppercase.l: Likewise. * testsuite/gas/riscv/march-fail-version-x.d: Failed to set versions. * testsuite/gas/riscv/march-fail-version-z.d: Likewise. * testsuite/gas/riscv/march-fail-version.l: Likewise. * testsuite/gas/riscv/march-fail-rv32ef.l: Updated. * testsuite/gas/riscv/march-fail-rv32id.d: Need f-ext. * testsuite/gas/riscv/march-fail-rv32iq.d: Should be rv64. * testsuite/gas/riscv/march-fail-rv32iq.l: Likewise. * testsuite/gas/riscv/march-fail-rv64iq.d: Need d-ext and f-ext. * testsuite/gas/riscv/march-fail-rv64iq.l: Likewise. (The following testcases are removed and covered by new testcases) * testsuite/gas/riscv/march-fail-rv32i.d: march-fail-uppercase-base. * testsuite/gas/riscv/march-fail-rv32i.l: Likewise. * testsuite/gas/riscv/march-fail-rv32iam.d: march-fail-order-std. * testsuite/gas/riscv/march-fail-rv32iam.l: Likewise. * testsuite/gas/riscv/march-fail-rv32ic.d: march-fail-uppercase-std. * testsuite/gas/riscv/march-fail-rv32ic.l: Likewise. * testsuite/gas/riscv/march-fail-rv32icx2p.d: march-fail-version-x. * testsuite/gas/riscv/march-fail-rv32icx2p.l: Likewise. * testsuite/gas/riscv/march-fail-rv32imc.d: march-fail-order-std. * testsuite/gas/riscv/march-fail-rv32imc.l: Likewise. * testsuite/gas/riscv/march-fail-rv64I.d: march-fail-uppercase-std. * testsuite/gas/riscv/march-fail-rv64I.l: Likewise. * testsuite/gas/riscv/march-fail-rv64e.d: march-fail-base-02. * testsuite/gas/riscv/march-fail-rv64e.l: Likewise. * testsuite/gas/riscv/march-fail-s-with-version.d: march-fail-unknown-s. * testsuite/gas/riscv/march-fail-s-with-version.l: Likewise. * testsuite/gas/riscv/march-fail-s.d: march-fail-unknown-s. * testsuite/gas/riscv/march-fail-s.l: Likewise. * testsuite/gas/riscv/march-fail-sx.d: march-fail-unknown-s. * testsuite/gas/riscv/march-fail-sx.l: Likewise.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/gas/riscv/march-fail-base-01.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-base-01.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-base-02.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-base-02.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-order-std.d (renamed from gas/testsuite/gas/riscv/march-fail-rv32imc.d)2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-order-std.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-order-x.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-order-x.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-porder-x-std.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-porder-x-z.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-porder-z-std.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-porder.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32ef.l4
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32i.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32i.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32iam.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32iam.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32ic.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32ic.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32icx2p.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32icx2p.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32id.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32id.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32imc.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32iq.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32iq.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv64I.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv64I.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv64e.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv64e.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv64iq.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv64iq.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-s-with-version.d6
-rw-r--r--gas/testsuite/gas/riscv/march-fail-s-with-version.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-s.d6
-rw-r--r--gas/testsuite/gas/riscv/march-fail-s.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-single-char-s.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-single-char-x.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-single-char-z.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-single-char.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-sx.d6
-rw-r--r--gas/testsuite/gas/riscv/march-fail-sx.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-unknown-s.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-unknown-std.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-unknown-std.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-unknown-z.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-unknown.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-uppercase-base.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-uppercase-std.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-uppercase-z.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-uppercase.l2
-rw-r--r--gas/testsuite/gas/riscv/march-fail-version-x.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-version-z.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-version.l2
54 files changed, 89 insertions, 59 deletions
diff --git a/gas/testsuite/gas/riscv/march-fail-base-01.d b/gas/testsuite/gas/riscv/march-fail-base-01.d
new file mode 100644
index 0000000..68cd453
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-base-01.d
@@ -0,0 +1,3 @@
+#as: -march=rv32m
+#source: empty.s
+#error_output: march-fail-base-01.l
diff --git a/gas/testsuite/gas/riscv/march-fail-base-01.l b/gas/testsuite/gas/riscv/march-fail-base-01.l
new file mode 100644
index 0000000..9fa071f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-base-01.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*first ISA extension must be `e', `i' or `g'
diff --git a/gas/testsuite/gas/riscv/march-fail-base-02.d b/gas/testsuite/gas/riscv/march-fail-base-02.d
new file mode 100644
index 0000000..cfe085a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-base-02.d
@@ -0,0 +1,3 @@
+#as: -march=rv64e
+#source: empty.s
+#error_output: march-fail-base-02.l
diff --git a/gas/testsuite/gas/riscv/march-fail-base-02.l b/gas/testsuite/gas/riscv/march-fail-base-02.l
new file mode 100644
index 0000000..6fc4dfa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-base-02.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*rv64e is not a valid base ISA
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32imc.d b/gas/testsuite/gas/riscv/march-fail-order-std.d
index 1cb4d9e..b9c7e09 100644
--- a/gas/testsuite/gas/riscv/march-fail-rv32imc.d
+++ b/gas/testsuite/gas/riscv/march-fail-order-std.d
@@ -1,3 +1,3 @@
#as: -march=rv32iamfd
#source: empty.s
-#error_output: march-fail-rv32imc.l
+#error_output: march-fail-order-std.l
diff --git a/gas/testsuite/gas/riscv/march-fail-order-std.l b/gas/testsuite/gas/riscv/march-fail-order-std.l
new file mode 100644
index 0000000..666a8c0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-order-std.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*standard ISA extension `m' is not in canonical order
diff --git a/gas/testsuite/gas/riscv/march-fail-order-x.d b/gas/testsuite/gas/riscv/march-fail-order-x.d
new file mode 100644
index 0000000..72a821e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-order-x.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xbargle2p0_xargle2p0
+#source: empty.s
+#error_output: march-fail-order-x.l
diff --git a/gas/testsuite/gas/riscv/march-fail-order-x.l b/gas/testsuite/gas/riscv/march-fail-order-x.l
new file mode 100644
index 0000000..f7b383d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-order-x.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*x ISA extension `xargle' is not in alphabetical order. It must come before `xbargle'
diff --git a/gas/testsuite/gas/riscv/march-fail-porder-x-std.d b/gas/testsuite/gas/riscv/march-fail-porder-x-std.d
new file mode 100644
index 0000000..2bef073
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-porder-x-std.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xargle2p0_mafd
+#source: empty.s
+#error_output: march-fail-porder.l
diff --git a/gas/testsuite/gas/riscv/march-fail-porder-x-z.d b/gas/testsuite/gas/riscv/march-fail-porder-x-z.d
new file mode 100644
index 0000000..094180d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-porder-x-z.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xargle2p0_zicsr2p0
+#source: empty.s
+#error_output: march-fail-porder.l
diff --git a/gas/testsuite/gas/riscv/march-fail-porder-z-std.d b/gas/testsuite/gas/riscv/march-fail-porder-z-std.d
new file mode 100644
index 0000000..1fa1a15
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-porder-z-std.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_zicsr2p0_mafd
+#source: empty.s
+#error_output: march-fail-porder.l
diff --git a/gas/testsuite/gas/riscv/march-fail-porder.l b/gas/testsuite/gas/riscv/march-fail-porder.l
new file mode 100644
index 0000000..a06d586
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-porder.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*unexpected ISA string at end:.*
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32ef.l b/gas/testsuite/gas/riscv/march-fail-rv32ef.l
index 15e56c8..d2d915d 100644
--- a/gas/testsuite/gas/riscv/march-fail-rv32ef.l
+++ b/gas/testsuite/gas/riscv/march-fail-rv32ef.l
@@ -1,2 +1,2 @@
-Assembler messages:
-Fatal error: -march=rv32ef: rv32e does not support the `f' extension
+.*Assembler messages:
+.*Fatal error: .*rv32e does not support the `f' extension
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32i.d b/gas/testsuite/gas/riscv/march-fail-rv32i.d
deleted file mode 100644
index 1e6e9e0..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv32i.d
+++ /dev/null
@@ -1,3 +0,0 @@
-#as: -march=rv32I
-#source: empty.s
-#error_output: march-fail-rv32i.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32i.l b/gas/testsuite/gas/riscv/march-fail-rv32i.l
deleted file mode 100644
index 1977aed..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv32i.l
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-Fatal error: -march=rv32I: first ISA subset must be `e', `i' or `g'
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32iam.d b/gas/testsuite/gas/riscv/march-fail-rv32iam.d
deleted file mode 100644
index 054cf4d..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv32iam.d
+++ /dev/null
@@ -1,3 +0,0 @@
-#as: -march=rv32iam
-#source: empty.s
-#error_output: march-fail-rv32iam.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32iam.l b/gas/testsuite/gas/riscv/march-fail-rv32iam.l
deleted file mode 100644
index c7786f8..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv32iam.l
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-Fatal error: -march=rv32iam: ISA string is not in canonical order. `m'
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32ic.d b/gas/testsuite/gas/riscv/march-fail-rv32ic.d
deleted file mode 100644
index b419a65..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv32ic.d
+++ /dev/null
@@ -1,3 +0,0 @@
-#as: -march=rv32iC
-#source: empty.s
-#error_output: march-fail-rv32ic.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32ic.l b/gas/testsuite/gas/riscv/march-fail-rv32ic.l
deleted file mode 100644
index d24ea2f..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv32ic.l
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-Fatal error: -march=rv32iC: unsupported ISA subset `C'
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32icx2p.d b/gas/testsuite/gas/riscv/march-fail-rv32icx2p.d
deleted file mode 100644
index 5198090..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv32icx2p.d
+++ /dev/null
@@ -1,3 +0,0 @@
-#as: -march=rv32icx2p
-#source: empty.s
-#error_output: march-fail-rv32icx2p.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32icx2p.l b/gas/testsuite/gas/riscv/march-fail-rv32icx2p.l
deleted file mode 100644
index 25627d4..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv32icx2p.l
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-Fatal error: -march=rv32icx2p: Expect number after `2p'.
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32id.d b/gas/testsuite/gas/riscv/march-fail-rv32id.d
new file mode 100644
index 0000000..de741cb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-rv32id.d
@@ -0,0 +1,3 @@
+#as: -march=rv32id
+#source: empty.s
+#error_output: march-fail-rv32id.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32id.l b/gas/testsuite/gas/riscv/march-fail-rv32id.l
new file mode 100644
index 0000000..29b2717
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-rv32id.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*`d' extension requires `f' extension
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32imc.l b/gas/testsuite/gas/riscv/march-fail-rv32imc.l
deleted file mode 100644
index d922e9d..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv32imc.l
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-Fatal error: -march=rv32iamfd: ISA string is not in canonical order. `m'
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32iq.d b/gas/testsuite/gas/riscv/march-fail-rv32iq.d
new file mode 100644
index 0000000..c289c69
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-rv32iq.d
@@ -0,0 +1,3 @@
+#as: -march=rv32iq
+#source: empty.s
+#error_output: march-fail-rv32iq.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32iq.l b/gas/testsuite/gas/riscv/march-fail-rv32iq.l
new file mode 100644
index 0000000..361c381
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-rv32iq.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*rv32 does not support the `q' extension
diff --git a/gas/testsuite/gas/riscv/march-fail-rv64I.d b/gas/testsuite/gas/riscv/march-fail-rv64I.d
deleted file mode 100644
index e00a6f8..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv64I.d
+++ /dev/null
@@ -1,3 +0,0 @@
-#as: -march=rv64I
-#source: empty.s
-#error_output: march-fail-rv64I.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rv64I.l b/gas/testsuite/gas/riscv/march-fail-rv64I.l
deleted file mode 100644
index 5b46e77..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv64I.l
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-Fatal error: -march=rv64I: first ISA subset must be `e', `i' or `g'
diff --git a/gas/testsuite/gas/riscv/march-fail-rv64e.d b/gas/testsuite/gas/riscv/march-fail-rv64e.d
deleted file mode 100644
index 38d73db..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv64e.d
+++ /dev/null
@@ -1,3 +0,0 @@
-#as: -march=rv64e
-#source: empty.s
-#error_output: march-fail-rv64e.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rv64e.l b/gas/testsuite/gas/riscv/march-fail-rv64e.l
deleted file mode 100644
index 85f7554..0000000
--- a/gas/testsuite/gas/riscv/march-fail-rv64e.l
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-Fatal error: -march=rv64e: rv64e is not a valid base ISA
diff --git a/gas/testsuite/gas/riscv/march-fail-rv64iq.d b/gas/testsuite/gas/riscv/march-fail-rv64iq.d
new file mode 100644
index 0000000..c97a812
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-rv64iq.d
@@ -0,0 +1,3 @@
+#as: -march=rv64iq
+#source: empty.s
+#error_output: march-fail-rv64iq.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rv64iq.l b/gas/testsuite/gas/riscv/march-fail-rv64iq.l
new file mode 100644
index 0000000..76a4104
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-rv64iq.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*`q' extension requires `d' extension
diff --git a/gas/testsuite/gas/riscv/march-fail-s-with-version.d b/gas/testsuite/gas/riscv/march-fail-s-with-version.d
deleted file mode 100644
index 9881c2a..0000000
--- a/gas/testsuite/gas/riscv/march-fail-s-with-version.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32isfoo3p4
-#objdump: -dr
-#source: empty.s
-#error_output: march-fail-s-with-version.l
-
-.*: file format elf32-littleriscv
diff --git a/gas/testsuite/gas/riscv/march-fail-s-with-version.l b/gas/testsuite/gas/riscv/march-fail-s-with-version.l
deleted file mode 100644
index 6b1f957..0000000
--- a/gas/testsuite/gas/riscv/march-fail-s-with-version.l
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-.*: Invalid or unknown s ISA extension: 'sfoo'
diff --git a/gas/testsuite/gas/riscv/march-fail-s.d b/gas/testsuite/gas/riscv/march-fail-s.d
deleted file mode 100644
index ebc8377..0000000
--- a/gas/testsuite/gas/riscv/march-fail-s.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32isfoo
-#objdump: -dr
-#source: empty.s
-#error_output: march-fail-s.l
-
-.*: file format elf32-littleriscv
diff --git a/gas/testsuite/gas/riscv/march-fail-s.l b/gas/testsuite/gas/riscv/march-fail-s.l
deleted file mode 100644
index 6b1f957..0000000
--- a/gas/testsuite/gas/riscv/march-fail-s.l
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-.*: Invalid or unknown s ISA extension: 'sfoo'
diff --git a/gas/testsuite/gas/riscv/march-fail-single-char-s.d b/gas/testsuite/gas/riscv/march-fail-single-char-s.d
new file mode 100644
index 0000000..b3aace9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-single-char-s.d
@@ -0,0 +1,3 @@
+#as: -march=rv32is
+#source: empty.s
+#error_output: march-fail-single-char.l
diff --git a/gas/testsuite/gas/riscv/march-fail-single-char-x.d b/gas/testsuite/gas/riscv/march-fail-single-char-x.d
new file mode 100644
index 0000000..585608c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-single-char-x.d
@@ -0,0 +1,3 @@
+#as: -march=rv32ix
+#source: empty.s
+#error_output: march-fail-single-char.l
diff --git a/gas/testsuite/gas/riscv/march-fail-single-char-z.d b/gas/testsuite/gas/riscv/march-fail-single-char-z.d
new file mode 100644
index 0000000..daf96d2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-single-char-z.d
@@ -0,0 +1,3 @@
+#as: -march=rv32iz
+#source: empty.s
+#error_output: march-fail-single-char.l
diff --git a/gas/testsuite/gas/riscv/march-fail-single-char.l b/gas/testsuite/gas/riscv/march-fail-single-char.l
new file mode 100644
index 0000000..aa87a8d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-single-char.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*unknown (s|z|x) ISA extension `(s|z|x)'
diff --git a/gas/testsuite/gas/riscv/march-fail-sx.d b/gas/testsuite/gas/riscv/march-fail-sx.d
deleted file mode 100644
index 144a85c..0000000
--- a/gas/testsuite/gas/riscv/march-fail-sx.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32i_sxbar
-#objdump: -dr
-#source: empty.s
-#error_output: march-fail-sx.l
-
-.*: file format elf32-littleriscv
diff --git a/gas/testsuite/gas/riscv/march-fail-sx.l b/gas/testsuite/gas/riscv/march-fail-sx.l
deleted file mode 100644
index b8ead71..0000000
--- a/gas/testsuite/gas/riscv/march-fail-sx.l
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-.*: Invalid or unknown s ISA extension: 'sxbar'
diff --git a/gas/testsuite/gas/riscv/march-fail-unknown-s.d b/gas/testsuite/gas/riscv/march-fail-unknown-s.d
new file mode 100644
index 0000000..93be528
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-unknown-s.d
@@ -0,0 +1,3 @@
+#as: -march=rv32isfoo2p0
+#source: empty.s
+#error_output: march-fail-unknown.l
diff --git a/gas/testsuite/gas/riscv/march-fail-unknown-std.d b/gas/testsuite/gas/riscv/march-fail-unknown-std.d
new file mode 100644
index 0000000..709c8f0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-unknown-std.d
@@ -0,0 +1,3 @@
+#as: -march=rv32iy
+#source: empty.s
+#error_output: march-fail-unknown-std.l
diff --git a/gas/testsuite/gas/riscv/march-fail-unknown-std.l b/gas/testsuite/gas/riscv/march-fail-unknown-std.l
new file mode 100644
index 0000000..cb85637
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-unknown-std.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*unknown standard ISA extension `[^eimafdqiglcbjtpvn]'
diff --git a/gas/testsuite/gas/riscv/march-fail-unknown-z.d b/gas/testsuite/gas/riscv/march-fail-unknown-z.d
new file mode 100644
index 0000000..6ea7c48
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-unknown-z.d
@@ -0,0 +1,3 @@
+#as: -march=rv32izfoo2p0
+#source: empty.s
+#error_output: march-fail-unknown.l
diff --git a/gas/testsuite/gas/riscv/march-fail-unknown.l b/gas/testsuite/gas/riscv/march-fail-unknown.l
new file mode 100644
index 0000000..ac22fe6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-unknown.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*unknown (s|z) ISA extension `(s|z)foo'
diff --git a/gas/testsuite/gas/riscv/march-fail-uppercase-base.d b/gas/testsuite/gas/riscv/march-fail-uppercase-base.d
new file mode 100644
index 0000000..74b55ea
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-uppercase-base.d
@@ -0,0 +1,3 @@
+#as: -march=rv32I
+#source: empty.s
+#error_output: march-fail-base-01.l
diff --git a/gas/testsuite/gas/riscv/march-fail-uppercase-std.d b/gas/testsuite/gas/riscv/march-fail-uppercase-std.d
new file mode 100644
index 0000000..8bad1f9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-uppercase-std.d
@@ -0,0 +1,3 @@
+#as: -march=rv32iC
+#source: empty.s
+#error_output: march-fail-uppercase.l
diff --git a/gas/testsuite/gas/riscv/march-fail-uppercase-z.d b/gas/testsuite/gas/riscv/march-fail-uppercase-z.d
new file mode 100644
index 0000000..951cc59
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-uppercase-z.d
@@ -0,0 +1,3 @@
+#as: -march=rv32ic_ziCSR
+#source: empty.s
+#error_output: march-fail-uppercase.l
diff --git a/gas/testsuite/gas/riscv/march-fail-uppercase.l b/gas/testsuite/gas/riscv/march-fail-uppercase.l
new file mode 100644
index 0000000..2053135
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-uppercase.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*unknown (standard|z) ISA extension.*
diff --git a/gas/testsuite/gas/riscv/march-fail-version-x.d b/gas/testsuite/gas/riscv/march-fail-version-x.d
new file mode 100644
index 0000000..8e140e3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-version-x.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i2p_zicsr2p0_xargle2p
+#source: empty.s
+#error_output: march-fail-version.l
diff --git a/gas/testsuite/gas/riscv/march-fail-version-z.d b/gas/testsuite/gas/riscv/march-fail-version-z.d
new file mode 100644
index 0000000..73ca579
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-version-z.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i2p_zicsr2p
+#source: empty.s
+#error_output: march-fail-version.l
diff --git a/gas/testsuite/gas/riscv/march-fail-version.l b/gas/testsuite/gas/riscv/march-fail-version.l
new file mode 100644
index 0000000..b5d0b91
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-version.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*Fatal error: .*expect number after `2p'