public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v3] riscv: Add AIA extension support (Smaia, Ssaia)
@ 2022-11-22 11:09 Christoph Muellner
  2022-11-25  3:04 ` Nelson Chu
  0 siblings, 1 reply; 2+ messages in thread
From: Christoph Muellner @ 2022-11-22 11:09 UTC (permalink / raw)
  To: binutils, Nelson Chu, Andrew Waterman, Palmer Dabbelt,
	Jim Wilson, Philipp Tomsich, Tsukasa OI
  Cc: Christoph Müllner

From: Christoph Müllner <christoph.muellner@vrull.eu>

This commit adds the AIA extensions (Smaia and Ssaia) CSRs.

bfd/ChangeLog:

	* elfxx-riscv.c: Add 'smaia' and 'ssaia' to the list
	of known standard extensions.

gas/ChangeLog:

	* config/tc-riscv.c (enum riscv_csr_class):
	(riscv_csr_address): Add CSR classes for Smaia/Ssaia.
	* testsuite/gas/riscv/csr-dw-regnums.d: Add new CSRs.
	* testsuite/gas/riscv/csr-dw-regnums.s: Likewise.
	* testsuite/gas/riscv/csr-version-1p10.d: Likewise.
	* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
	* testsuite/gas/riscv/csr-version-1p11.d: Likewise.
	* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
	* testsuite/gas/riscv/csr-version-1p12.d: Likewise.
	* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
	* testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
	* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
	* testsuite/gas/riscv/csr.s: Likewise.

include/ChangeLog:

	* opcode/riscv-opc.h (CSR_MISELECT): New CSR macro.
	(CSR_MIREG): Likewise.
	(CSR_MTOPEI): Likewise.
	(CSR_MTOPI): Likewise.
	(CSR_MVIEN): Likewise.
	(CSR_MVIP): Likewise.
	(CSR_MIDELEGH): Likewise.
	(CSR_MIEH): Likewise.
	(CSR_MVIENH): Likewise.
	(CSR_MVIPH): Likewise.
	(CSR_MIPH): Likewise.
	(CSR_SISELECT): Likewise.
	(CSR_SIREG): Likewise.
	(CSR_STOPEI): Likewise.
	(CSR_STOPI): Likewise.
	(CSR_SIEH): Likewise.
	(CSR_SIPH): Likewise.
	(CSR_HVIEN): Likewise.
	(CSR_HVICTL): Likewise.
	(CSR_HVIPRIO1): Likewise.
	(CSR_HVIPRIO2): Likewise.
	(CSR_VSISELECT): Likewise.
	(CSR_VSIREG): Likewise.
	(CSR_VSTOPEI): Likewise.
	(CSR_VSTOPI): Likewise.
	(CSR_HIDELEGH): Likewise.
	(CSR_HVIENH): Likewise.
	(CSR_HVIPH): Likewise.
	(CSR_HVIPRIO1H): Likewise.
	(CSR_HVIPRIO2H): Likewise.
	(CSR_VSIEH): Likewise.
	(CSR_VSIPH): Likewise.
	(DECLARE_CSR): Add CSRs for Smaia and Ssaia.

Changes for v3:
- Imply ssaia for smaia
- Imply zicsr for ssaia (and transitively smaia)
- Move hypervisor CSRs to Ssaia+H
- Rebase on upstream/master

Changes for v2:
- Add hypervisor and VS CSRs
- Fix whitespace issue

Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
---
 bfd/elfxx-riscv.c                           |   4 +
 gas/config/tc-riscv.c                       |  22 ++++
 gas/testsuite/gas/riscv/csr-dw-regnums.d    |  32 +++++
 gas/testsuite/gas/riscv/csr-dw-regnums.s    |  36 ++++++
 gas/testsuite/gas/riscv/csr-version-1p10.d  |  64 ++++++++++
 gas/testsuite/gas/riscv/csr-version-1p10.l  | 125 ++++++++++++++++++++
 gas/testsuite/gas/riscv/csr-version-1p11.d  |  64 ++++++++++
 gas/testsuite/gas/riscv/csr-version-1p11.l  | 125 ++++++++++++++++++++
 gas/testsuite/gas/riscv/csr-version-1p12.d  |  64 ++++++++++
 gas/testsuite/gas/riscv/csr-version-1p12.l  | 125 ++++++++++++++++++++
 gas/testsuite/gas/riscv/csr-version-1p9p1.d |  64 ++++++++++
 gas/testsuite/gas/riscv/csr-version-1p9p1.l | 125 ++++++++++++++++++++
 gas/testsuite/gas/riscv/csr.s               |  36 ++++++
 include/opcode/riscv-opc.h                  |  68 +++++++++++
 14 files changed, 954 insertions(+)

diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index afbde56b9e5..a81ba3e303f 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1097,8 +1097,10 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
   {"zks", "zbkx",	check_implicit_always},
   {"zks", "zksed",	check_implicit_always},
   {"zks", "zksh",	check_implicit_always},
+  {"smaia", "ssaia",		check_implicit_always},
   {"smstateen", "ssstateen",	check_implicit_always},
   {"smepmp", "zicsr",		check_implicit_always},
+  {"ssaia", "zicsr",		check_implicit_always},
   {"sscofpmf", "zicsr",		check_implicit_always},
   {"ssstateen", "zicsr",	check_implicit_always},
   {"sstc", "zicsr",		check_implicit_always},
@@ -1217,8 +1219,10 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
 
 static struct riscv_supported_ext riscv_supported_std_s_ext[] =
 {
+  {"smaia",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
   {"smepmp",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
   {"smstateen",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
+  {"ssaia",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
   {"sscofpmf",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
   {"ssstateen",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
   {"sstc",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 019545171f5..96d71dd1db6 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -68,8 +68,14 @@ enum riscv_csr_class
   CSR_CLASS_DEBUG,	/* debug CSR */
   CSR_CLASS_H,		/* hypervisor */
   CSR_CLASS_H_32,	/* hypervisor, rv32 only */
+  CSR_CLASS_SMAIA,		/* Smaia */
+  CSR_CLASS_SMAIA_32,		/* Smaia, rv32 only */
   CSR_CLASS_SMSTATEEN,		/* Smstateen only */
   CSR_CLASS_SMSTATEEN_32,	/* Smstateen RV32 only */
+  CSR_CLASS_SSAIA,		/* Ssaia */
+  CSR_CLASS_SSAIA_AND_H,	/* Ssaia with H */
+  CSR_CLASS_SSAIA_32,		/* Ssaia, rv32 only */
+  CSR_CLASS_SSAIA_AND_H_32,	/* Ssaia with H, rv32 only */
   CSR_CLASS_SSSTATEEN,		/* S[ms]stateen only */
   CSR_CLASS_SSSTATEEN_AND_H,	/* S[ms]stateen only (with H) */
   CSR_CLASS_SSSTATEEN_AND_H_32,	/* S[ms]stateen RV32 only (with H) */
@@ -1029,11 +1035,27 @@ riscv_csr_address (const char *csr_name,
     case CSR_CLASS_V:
       extension = "zve32x";
       break;
+    case CSR_CLASS_SMAIA_32:
+      is_rv32_only = true;
+      /* Fall through.  */
+    case CSR_CLASS_SMAIA:
+      extension = "smaia";
+      break;
     case CSR_CLASS_SMSTATEEN:
     case CSR_CLASS_SMSTATEEN_32:
       is_rv32_only = (csr_class == CSR_CLASS_SMSTATEEN_32);
       extension = "smstateen";
       break;
+    case CSR_CLASS_SSAIA:
+    case CSR_CLASS_SSAIA_AND_H:
+    case CSR_CLASS_SSAIA_32:
+    case CSR_CLASS_SSAIA_AND_H_32:
+      is_rv32_only = (csr_class == CSR_CLASS_SSAIA_32
+		      || csr_class == CSR_CLASS_SSAIA_AND_H_32);
+      is_h_required = (csr_class == CSR_CLASS_SSAIA_AND_H
+		       || csr_class == CSR_CLASS_SSAIA_AND_H_32);
+      extension = "ssaia";
+      break;
     case CSR_CLASS_SSSTATEEN:
     case CSR_CLASS_SSSTATEEN_AND_H:
     case CSR_CLASS_SSSTATEEN_AND_H_32:
diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d b/gas/testsuite/gas/riscv/csr-dw-regnums.d
index b4b3806a085..fd830666ab8 100644
--- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
+++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
@@ -313,6 +313,17 @@ Contents of the .* section:
   DW_CFA_offset_extended_sf: r4675 \(vstval\) at cfa\+2316
   DW_CFA_offset_extended_sf: r4676 \(vsip\) at cfa\+2320
   DW_CFA_offset_extended_sf: r4736 \(vsatp\) at cfa\+2560
+  DW_CFA_offset_extended_sf: r4944 \(miselect\) at cfa\+3392
+  DW_CFA_offset_extended_sf: r4945 \(mireg\) at cfa\+3396
+  DW_CFA_offset_extended_sf: r4956 \(mtopei\) at cfa\+3440
+  DW_CFA_offset_extended_sf: r8112 \(mtopi\) at cfa\+16064
+  DW_CFA_offset_extended_sf: r4872 \(mvien\) at cfa\+3104
+  DW_CFA_offset_extended_sf: r4873 \(mvip\) at cfa\+3108
+  DW_CFA_offset_extended_sf: r4883 \(midelegh\) at cfa\+3148
+  DW_CFA_offset_extended_sf: r4884 \(mieh\) at cfa\+3152
+  DW_CFA_offset_extended_sf: r4888 \(mvienh\) at cfa\+3168
+  DW_CFA_offset_extended_sf: r4889 \(mviph\) at cfa\+3172
+  DW_CFA_offset_extended_sf: r4948 \(miph\) at cfa\+3408
   DW_CFA_offset_extended_sf: r4876 \(mstateen0\) at cfa\+3120
   DW_CFA_offset_extended_sf: r4877 \(mstateen1\) at cfa\+3124
   DW_CFA_offset_extended_sf: r4878 \(mstateen2\) at cfa\+3128
@@ -333,6 +344,27 @@ Contents of the .* section:
   DW_CFA_offset_extended_sf: r5661 \(hstateen1h\) at cfa\+6260
   DW_CFA_offset_extended_sf: r5662 \(hstateen2h\) at cfa\+6264
   DW_CFA_offset_extended_sf: r5663 \(hstateen3h\) at cfa\+6268
+  DW_CFA_offset_extended_sf: r4432 \(siselect\) at cfa\+1344
+  DW_CFA_offset_extended_sf: r4433 \(sireg\) at cfa\+1348
+  DW_CFA_offset_extended_sf: r4444 \(stopei\) at cfa\+1392
+  DW_CFA_offset_extended_sf: r7600 \(stopi\) at cfa\+14016
+  DW_CFA_offset_extended_sf: r4372 \(sieh\) at cfa\+1104
+  DW_CFA_offset_extended_sf: r4436 \(siph\) at cfa\+1360
+  DW_CFA_offset_extended_sf: r5640 \(hvien\) at cfa\+6176
+  DW_CFA_offset_extended_sf: r5641 \(hvictl\) at cfa\+6180
+  DW_CFA_offset_extended_sf: r5702 \(hviprio1\) at cfa\+6424
+  DW_CFA_offset_extended_sf: r5703 \(hviprio2\) at cfa\+6428
+  DW_CFA_offset_extended_sf: r4688 \(vsiselect\) at cfa\+2368
+  DW_CFA_offset_extended_sf: r4689 \(vsireg\) at cfa\+2372
+  DW_CFA_offset_extended_sf: r4700 \(vstopei\) at cfa\+2416
+  DW_CFA_offset_extended_sf: r7856 \(vstopi\) at cfa\+15040
+  DW_CFA_offset_extended_sf: r5651 \(hidelegh\) at cfa\+6220
+  DW_CFA_offset_extended_sf: r5656 \(hvienh\) at cfa\+6240
+  DW_CFA_offset_extended_sf: r5717 \(hviph\) at cfa\+6484
+  DW_CFA_offset_extended_sf: r5718 \(hviprio1h\) at cfa\+6488
+  DW_CFA_offset_extended_sf: r5719 \(hviprio2h\) at cfa\+6492
+  DW_CFA_offset_extended_sf: r4628 \(vsieh\) at cfa\+2128
+  DW_CFA_offset_extended_sf: r4692 \(vsiph\) at cfa\+2384
   DW_CFA_offset_extended_sf: r7584 \(scountovf\) at cfa\+13952
   DW_CFA_offset_extended_sf: r5923 \(mhpmevent3h\) at cfa\+7308
   DW_CFA_offset_extended_sf: r5924 \(mhpmevent4h\) at cfa\+7312
diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.s b/gas/testsuite/gas/riscv/csr-dw-regnums.s
index 6cfa415ebc2..b8b0f790229 100644
--- a/gas/testsuite/gas/riscv/csr-dw-regnums.s
+++ b/gas/testsuite/gas/riscv/csr-dw-regnums.s
@@ -1,6 +1,8 @@
 # Check that CFI directives can accept all of the CSR names (including
 # aliases).  The results for this test also ensures that the DWARF
 # register numbers for the CSRs shouldn't change.
+# The register numbers are specified to be CSR-ID + 4096 (see psABI spec).
+# The CFI offsets in this file are CSR-ID x 4.
 
 	.text
 	.global _start
@@ -307,6 +309,18 @@ _start:
 	.cfi_offset vstval, 2316
 	.cfi_offset vsip, 2320
 	.cfi_offset vsatp, 2560
+	# Smaia extension
+	.cfi_offset miselect, 3392
+	.cfi_offset mireg, 3396
+	.cfi_offset mtopei, 3440
+	.cfi_offset mtopi, 16064
+	.cfi_offset mvien, 3104
+	.cfi_offset mvip, 3108
+	.cfi_offset midelegh, 3148
+	.cfi_offset mieh, 3152
+	.cfi_offset mvienh, 3168
+	.cfi_offset mviph, 3172
+	.cfi_offset miph, 3408
 	# Smstateen extension
 	.cfi_offset mstateen0, 3120
 	.cfi_offset mstateen1, 3124
@@ -328,6 +342,28 @@ _start:
 	.cfi_offset hstateen1h, 6260
 	.cfi_offset hstateen2h, 6264
 	.cfi_offset hstateen3h, 6268
+	# Ssaia extension
+	.cfi_offset siselect, 1344
+	.cfi_offset sireg, 1348
+	.cfi_offset stopei, 1392
+	.cfi_offset stopi, 14016
+	.cfi_offset sieh, 1104
+	.cfi_offset siph, 1360
+	.cfi_offset hvien, 6176
+	.cfi_offset hvictl, 6180
+	.cfi_offset hviprio1, 6424
+	.cfi_offset hviprio2, 6428
+	.cfi_offset vsiselect, 2368
+	.cfi_offset vsireg, 2372
+	.cfi_offset vstopei, 2416
+	.cfi_offset vstopi, 15040
+	.cfi_offset hidelegh, 6220
+	.cfi_offset hvienh, 6240
+	.cfi_offset hviph, 6484
+	.cfi_offset hviprio1h, 6488
+	.cfi_offset hviprio2h, 6492
+	.cfi_offset vsieh, 2128
+	.cfi_offset vsiph, 2384
 	# Sscofpmf extension
 	.cfi_offset scountovf, 13952
 	.cfi_offset mhpmevent3h, 7308
diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.d b/gas/testsuite/gas/riscv/csr-version-1p10.d
index bd8b10302e3..ee41e1025cc 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p10.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
@@ -601,6 +601,28 @@ Disassembly of section .text:
 [ 	]+[0-9a-f]+:[ 	]+24459073[ 	]+csrw[ 	]+vsip,a1
 [ 	]+[0-9a-f]+:[ 	]+28002573[ 	]+csrr[ 	]+a0,vsatp
 [ 	]+[0-9a-f]+:[ 	]+28059073[ 	]+csrw[ 	]+vsatp,a1
+[ 	]+[0-9a-f]+:[ 	]+35002573[ 	]+csrr[ 	]+a0,miselect
+[ 	]+[0-9a-f]+:[ 	]+35059073[ 	]+csrw[ 	]+miselect,a1
+[ 	]+[0-9a-f]+:[ 	]+35102573[ 	]+csrr[ 	]+a0,mireg
+[ 	]+[0-9a-f]+:[ 	]+35159073[ 	]+csrw[ 	]+mireg,a1
+[ 	]+[0-9a-f]+:[ 	]+35c02573[ 	]+csrr[ 	]+a0,mtopei
+[ 	]+[0-9a-f]+:[ 	]+35c59073[ 	]+csrw[ 	]+mtopei,a1
+[ 	]+[0-9a-f]+:[ 	]+fb002573[ 	]+csrr[ 	]+a0,mtopi
+[ 	]+[0-9a-f]+:[ 	]+fb059073[ 	]+csrw[ 	]+mtopi,a1
+[ 	]+[0-9a-f]+:[ 	]+30802573[ 	]+csrr[ 	]+a0,mvien
+[ 	]+[0-9a-f]+:[ 	]+30859073[ 	]+csrw[ 	]+mvien,a1
+[ 	]+[0-9a-f]+:[ 	]+30902573[ 	]+csrr[ 	]+a0,mvip
+[ 	]+[0-9a-f]+:[ 	]+30959073[ 	]+csrw[ 	]+mvip,a1
+[ 	]+[0-9a-f]+:[ 	]+31302573[ 	]+csrr[ 	]+a0,midelegh
+[ 	]+[0-9a-f]+:[ 	]+31359073[ 	]+csrw[ 	]+midelegh,a1
+[ 	]+[0-9a-f]+:[ 	]+31402573[ 	]+csrr[ 	]+a0,mieh
+[ 	]+[0-9a-f]+:[ 	]+31459073[ 	]+csrw[ 	]+mieh,a1
+[ 	]+[0-9a-f]+:[ 	]+31802573[ 	]+csrr[ 	]+a0,mvienh
+[ 	]+[0-9a-f]+:[ 	]+31859073[ 	]+csrw[ 	]+mvienh,a1
+[ 	]+[0-9a-f]+:[ 	]+31902573[ 	]+csrr[ 	]+a0,mviph
+[ 	]+[0-9a-f]+:[ 	]+31959073[ 	]+csrw[ 	]+mviph,a1
+[ 	]+[0-9a-f]+:[ 	]+35402573[ 	]+csrr[ 	]+a0,miph
+[ 	]+[0-9a-f]+:[ 	]+35459073[ 	]+csrw[ 	]+miph,a1
 [ 	]+[0-9a-f]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
 [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
 [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
@@ -641,6 +663,48 @@ Disassembly of section .text:
 [ 	]+[0-9a-f]+:[ 	]+61e59073[ 	]+csrw[ 	]+hstateen2h,a1
 [ 	]+[0-9a-f]+:[ 	]+61f02573[ 	]+csrr[ 	]+a0,hstateen3h
 [ 	]+[0-9a-f]+:[ 	]+61f59073[ 	]+csrw[ 	]+hstateen3h,a1
+[ 	]+[0-9a-f]+:[ 	]+15002573[ 	]+csrr[ 	]+a0,siselect
+[ 	]+[0-9a-f]+:[ 	]+15059073[ 	]+csrw[ 	]+siselect,a1
+[ 	]+[0-9a-f]+:[ 	]+15102573[ 	]+csrr[ 	]+a0,sireg
+[ 	]+[0-9a-f]+:[ 	]+15159073[ 	]+csrw[ 	]+sireg,a1
+[ 	]+[0-9a-f]+:[ 	]+15c02573[ 	]+csrr[ 	]+a0,stopei
+[ 	]+[0-9a-f]+:[ 	]+15c59073[ 	]+csrw[ 	]+stopei,a1
+[ 	]+[0-9a-f]+:[ 	]+db002573[ 	]+csrr[ 	]+a0,stopi
+[ 	]+[0-9a-f]+:[ 	]+db059073[ 	]+csrw[ 	]+stopi,a1
+[ 	]+[0-9a-f]+:[ 	]+11402573[ 	]+csrr[ 	]+a0,sieh
+[ 	]+[0-9a-f]+:[ 	]+11459073[ 	]+csrw[ 	]+sieh,a1
+[ 	]+[0-9a-f]+:[ 	]+15402573[ 	]+csrr[ 	]+a0,siph
+[ 	]+[0-9a-f]+:[ 	]+15459073[ 	]+csrw[ 	]+siph,a1
+[ 	]+[0-9a-f]+:[ 	]+60802573[ 	]+csrr[ 	]+a0,hvien
+[ 	]+[0-9a-f]+:[ 	]+60859073[ 	]+csrw[ 	]+hvien,a1
+[ 	]+[0-9a-f]+:[ 	]+60902573[ 	]+csrr[ 	]+a0,hvictl
+[ 	]+[0-9a-f]+:[ 	]+60959073[ 	]+csrw[ 	]+hvictl,a1
+[ 	]+[0-9a-f]+:[ 	]+64602573[ 	]+csrr[ 	]+a0,hviprio1
+[ 	]+[0-9a-f]+:[ 	]+64659073[ 	]+csrw[ 	]+hviprio1,a1
+[ 	]+[0-9a-f]+:[ 	]+64702573[ 	]+csrr[ 	]+a0,hviprio2
+[ 	]+[0-9a-f]+:[ 	]+64759073[ 	]+csrw[ 	]+hviprio2,a1
+[ 	]+[0-9a-f]+:[ 	]+25002573[ 	]+csrr[ 	]+a0,vsiselect
+[ 	]+[0-9a-f]+:[ 	]+25059073[ 	]+csrw[ 	]+vsiselect,a1
+[ 	]+[0-9a-f]+:[ 	]+25102573[ 	]+csrr[ 	]+a0,vsireg
+[ 	]+[0-9a-f]+:[ 	]+25159073[ 	]+csrw[ 	]+vsireg,a1
+[ 	]+[0-9a-f]+:[ 	]+25c02573[ 	]+csrr[ 	]+a0,vstopei
+[ 	]+[0-9a-f]+:[ 	]+25c59073[ 	]+csrw[ 	]+vstopei,a1
+[ 	]+[0-9a-f]+:[ 	]+eb002573[ 	]+csrr[ 	]+a0,vstopi
+[ 	]+[0-9a-f]+:[ 	]+eb059073[ 	]+csrw[ 	]+vstopi,a1
+[ 	]+[0-9a-f]+:[ 	]+61302573[ 	]+csrr[ 	]+a0,hidelegh
+[ 	]+[0-9a-f]+:[ 	]+61359073[ 	]+csrw[ 	]+hidelegh,a1
+[ 	]+[0-9a-f]+:[ 	]+61802573[ 	]+csrr[ 	]+a0,hvienh
+[ 	]+[0-9a-f]+:[ 	]+61859073[ 	]+csrw[ 	]+hvienh,a1
+[ 	]+[0-9a-f]+:[ 	]+65502573[ 	]+csrr[ 	]+a0,hviph
+[ 	]+[0-9a-f]+:[ 	]+65559073[ 	]+csrw[ 	]+hviph,a1
+[ 	]+[0-9a-f]+:[ 	]+65602573[ 	]+csrr[ 	]+a0,hviprio1h
+[ 	]+[0-9a-f]+:[ 	]+65659073[ 	]+csrw[ 	]+hviprio1h,a1
+[ 	]+[0-9a-f]+:[ 	]+65702573[ 	]+csrr[ 	]+a0,hviprio2h
+[ 	]+[0-9a-f]+:[ 	]+65759073[ 	]+csrw[ 	]+hviprio2h,a1
+[ 	]+[0-9a-f]+:[ 	]+21402573[ 	]+csrr[ 	]+a0,vsieh
+[ 	]+[0-9a-f]+:[ 	]+21459073[ 	]+csrw[ 	]+vsieh,a1
+[ 	]+[0-9a-f]+:[ 	]+25402573[ 	]+csrr[ 	]+a0,vsiph
+[ 	]+[0-9a-f]+:[ 	]+25459073[ 	]+csrw[ 	]+vsiph,a1
 [ 	]+[0-9a-f]+:[ 	]+da002573[ 	]+csrr[ 	]+a0,scountovf
 [ 	]+[0-9a-f]+:[ 	]+da059073[ 	]+csrw[ 	]+scountovf,a1
 [ 	]+[0-9a-f]+:[ 	]+72302573[ 	]+csrr[ 	]+a0,mhpmevent3h
diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas/riscv/csr-version-1p10.l
index 03af32d3bef..e677b78b8bb 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p10.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
@@ -411,6 +411,39 @@
 .*Warning: invalid CSR `vsip', needs `h' extension
 .*Warning: invalid CSR `vsatp', needs `h' extension
 .*Warning: invalid CSR `vsatp', needs `h' extension
+.*Warning: invalid CSR `miselect', needs `smaia' extension
+.*Warning: invalid CSR `miselect', needs `smaia' extension
+.*Warning: invalid CSR `mireg', needs `smaia' extension
+.*Warning: invalid CSR `mireg', needs `smaia' extension
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Warning: read-only CSR is written `csrw mtopi,a1'
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Warning: invalid CSR `miph', needs `smaia' extension
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Warning: invalid CSR `miph', needs `smaia' extension
 .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
 .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
 .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
@@ -483,6 +516,98 @@
 .*Warning: invalid CSR `hstateen3h', needs rv32i extension
 .*Warning: invalid CSR `hstateen3h', needs `h' extension
 .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
+.*Warning: invalid CSR `siselect', needs `ssaia' extension
+.*Warning: invalid CSR `siselect', needs `ssaia' extension
+.*Warning: invalid CSR `sireg', needs `ssaia' extension
+.*Warning: invalid CSR `sireg', needs `ssaia' extension
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Warning: read-only CSR is written `csrw stopi,a1'
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Warning: invalid CSR `vsireg', needs `ssaia' extension
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Warning: invalid CSR `vsireg', needs `ssaia' extension
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Warning: read-only CSR is written `csrw vstopi,a1'
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
 .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
 .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
 .*Warning: read-only CSR is written `csrw scountovf,a1'
diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.d b/gas/testsuite/gas/riscv/csr-version-1p11.d
index 5d6333884f1..a83b1bf68f9 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p11.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
@@ -601,6 +601,28 @@ Disassembly of section .text:
 [ 	]+[0-9a-f]+:[ 	]+24459073[ 	]+csrw[ 	]+vsip,a1
 [ 	]+[0-9a-f]+:[ 	]+28002573[ 	]+csrr[ 	]+a0,vsatp
 [ 	]+[0-9a-f]+:[ 	]+28059073[ 	]+csrw[ 	]+vsatp,a1
+[ 	]+[0-9a-f]+:[ 	]+35002573[ 	]+csrr[ 	]+a0,miselect
+[ 	]+[0-9a-f]+:[ 	]+35059073[ 	]+csrw[ 	]+miselect,a1
+[ 	]+[0-9a-f]+:[ 	]+35102573[ 	]+csrr[ 	]+a0,mireg
+[ 	]+[0-9a-f]+:[ 	]+35159073[ 	]+csrw[ 	]+mireg,a1
+[ 	]+[0-9a-f]+:[ 	]+35c02573[ 	]+csrr[ 	]+a0,mtopei
+[ 	]+[0-9a-f]+:[ 	]+35c59073[ 	]+csrw[ 	]+mtopei,a1
+[ 	]+[0-9a-f]+:[ 	]+fb002573[ 	]+csrr[ 	]+a0,mtopi
+[ 	]+[0-9a-f]+:[ 	]+fb059073[ 	]+csrw[ 	]+mtopi,a1
+[ 	]+[0-9a-f]+:[ 	]+30802573[ 	]+csrr[ 	]+a0,mvien
+[ 	]+[0-9a-f]+:[ 	]+30859073[ 	]+csrw[ 	]+mvien,a1
+[ 	]+[0-9a-f]+:[ 	]+30902573[ 	]+csrr[ 	]+a0,mvip
+[ 	]+[0-9a-f]+:[ 	]+30959073[ 	]+csrw[ 	]+mvip,a1
+[ 	]+[0-9a-f]+:[ 	]+31302573[ 	]+csrr[ 	]+a0,midelegh
+[ 	]+[0-9a-f]+:[ 	]+31359073[ 	]+csrw[ 	]+midelegh,a1
+[ 	]+[0-9a-f]+:[ 	]+31402573[ 	]+csrr[ 	]+a0,mieh
+[ 	]+[0-9a-f]+:[ 	]+31459073[ 	]+csrw[ 	]+mieh,a1
+[ 	]+[0-9a-f]+:[ 	]+31802573[ 	]+csrr[ 	]+a0,mvienh
+[ 	]+[0-9a-f]+:[ 	]+31859073[ 	]+csrw[ 	]+mvienh,a1
+[ 	]+[0-9a-f]+:[ 	]+31902573[ 	]+csrr[ 	]+a0,mviph
+[ 	]+[0-9a-f]+:[ 	]+31959073[ 	]+csrw[ 	]+mviph,a1
+[ 	]+[0-9a-f]+:[ 	]+35402573[ 	]+csrr[ 	]+a0,miph
+[ 	]+[0-9a-f]+:[ 	]+35459073[ 	]+csrw[ 	]+miph,a1
 [ 	]+[0-9a-f]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
 [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
 [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
@@ -641,6 +663,48 @@ Disassembly of section .text:
 [ 	]+[0-9a-f]+:[ 	]+61e59073[ 	]+csrw[ 	]+hstateen2h,a1
 [ 	]+[0-9a-f]+:[ 	]+61f02573[ 	]+csrr[ 	]+a0,hstateen3h
 [ 	]+[0-9a-f]+:[ 	]+61f59073[ 	]+csrw[ 	]+hstateen3h,a1
+[ 	]+[0-9a-f]+:[ 	]+15002573[ 	]+csrr[ 	]+a0,siselect
+[ 	]+[0-9a-f]+:[ 	]+15059073[ 	]+csrw[ 	]+siselect,a1
+[ 	]+[0-9a-f]+:[ 	]+15102573[ 	]+csrr[ 	]+a0,sireg
+[ 	]+[0-9a-f]+:[ 	]+15159073[ 	]+csrw[ 	]+sireg,a1
+[ 	]+[0-9a-f]+:[ 	]+15c02573[ 	]+csrr[ 	]+a0,stopei
+[ 	]+[0-9a-f]+:[ 	]+15c59073[ 	]+csrw[ 	]+stopei,a1
+[ 	]+[0-9a-f]+:[ 	]+db002573[ 	]+csrr[ 	]+a0,stopi
+[ 	]+[0-9a-f]+:[ 	]+db059073[ 	]+csrw[ 	]+stopi,a1
+[ 	]+[0-9a-f]+:[ 	]+11402573[ 	]+csrr[ 	]+a0,sieh
+[ 	]+[0-9a-f]+:[ 	]+11459073[ 	]+csrw[ 	]+sieh,a1
+[ 	]+[0-9a-f]+:[ 	]+15402573[ 	]+csrr[ 	]+a0,siph
+[ 	]+[0-9a-f]+:[ 	]+15459073[ 	]+csrw[ 	]+siph,a1
+[ 	]+[0-9a-f]+:[ 	]+60802573[ 	]+csrr[ 	]+a0,hvien
+[ 	]+[0-9a-f]+:[ 	]+60859073[ 	]+csrw[ 	]+hvien,a1
+[ 	]+[0-9a-f]+:[ 	]+60902573[ 	]+csrr[ 	]+a0,hvictl
+[ 	]+[0-9a-f]+:[ 	]+60959073[ 	]+csrw[ 	]+hvictl,a1
+[ 	]+[0-9a-f]+:[ 	]+64602573[ 	]+csrr[ 	]+a0,hviprio1
+[ 	]+[0-9a-f]+:[ 	]+64659073[ 	]+csrw[ 	]+hviprio1,a1
+[ 	]+[0-9a-f]+:[ 	]+64702573[ 	]+csrr[ 	]+a0,hviprio2
+[ 	]+[0-9a-f]+:[ 	]+64759073[ 	]+csrw[ 	]+hviprio2,a1
+[ 	]+[0-9a-f]+:[ 	]+25002573[ 	]+csrr[ 	]+a0,vsiselect
+[ 	]+[0-9a-f]+:[ 	]+25059073[ 	]+csrw[ 	]+vsiselect,a1
+[ 	]+[0-9a-f]+:[ 	]+25102573[ 	]+csrr[ 	]+a0,vsireg
+[ 	]+[0-9a-f]+:[ 	]+25159073[ 	]+csrw[ 	]+vsireg,a1
+[ 	]+[0-9a-f]+:[ 	]+25c02573[ 	]+csrr[ 	]+a0,vstopei
+[ 	]+[0-9a-f]+:[ 	]+25c59073[ 	]+csrw[ 	]+vstopei,a1
+[ 	]+[0-9a-f]+:[ 	]+eb002573[ 	]+csrr[ 	]+a0,vstopi
+[ 	]+[0-9a-f]+:[ 	]+eb059073[ 	]+csrw[ 	]+vstopi,a1
+[ 	]+[0-9a-f]+:[ 	]+61302573[ 	]+csrr[ 	]+a0,hidelegh
+[ 	]+[0-9a-f]+:[ 	]+61359073[ 	]+csrw[ 	]+hidelegh,a1
+[ 	]+[0-9a-f]+:[ 	]+61802573[ 	]+csrr[ 	]+a0,hvienh
+[ 	]+[0-9a-f]+:[ 	]+61859073[ 	]+csrw[ 	]+hvienh,a1
+[ 	]+[0-9a-f]+:[ 	]+65502573[ 	]+csrr[ 	]+a0,hviph
+[ 	]+[0-9a-f]+:[ 	]+65559073[ 	]+csrw[ 	]+hviph,a1
+[ 	]+[0-9a-f]+:[ 	]+65602573[ 	]+csrr[ 	]+a0,hviprio1h
+[ 	]+[0-9a-f]+:[ 	]+65659073[ 	]+csrw[ 	]+hviprio1h,a1
+[ 	]+[0-9a-f]+:[ 	]+65702573[ 	]+csrr[ 	]+a0,hviprio2h
+[ 	]+[0-9a-f]+:[ 	]+65759073[ 	]+csrw[ 	]+hviprio2h,a1
+[ 	]+[0-9a-f]+:[ 	]+21402573[ 	]+csrr[ 	]+a0,vsieh
+[ 	]+[0-9a-f]+:[ 	]+21459073[ 	]+csrw[ 	]+vsieh,a1
+[ 	]+[0-9a-f]+:[ 	]+25402573[ 	]+csrr[ 	]+a0,vsiph
+[ 	]+[0-9a-f]+:[ 	]+25459073[ 	]+csrw[ 	]+vsiph,a1
 [ 	]+[0-9a-f]+:[ 	]+da002573[ 	]+csrr[ 	]+a0,scountovf
 [ 	]+[0-9a-f]+:[ 	]+da059073[ 	]+csrw[ 	]+scountovf,a1
 [ 	]+[0-9a-f]+:[ 	]+72302573[ 	]+csrr[ 	]+a0,mhpmevent3h
diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas/riscv/csr-version-1p11.l
index 0766c2263ec..81ca86ca7bc 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p11.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
@@ -409,6 +409,39 @@
 .*Warning: invalid CSR `vsip', needs `h' extension
 .*Warning: invalid CSR `vsatp', needs `h' extension
 .*Warning: invalid CSR `vsatp', needs `h' extension
+.*Warning: invalid CSR `miselect', needs `smaia' extension
+.*Warning: invalid CSR `miselect', needs `smaia' extension
+.*Warning: invalid CSR `mireg', needs `smaia' extension
+.*Warning: invalid CSR `mireg', needs `smaia' extension
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Warning: read-only CSR is written `csrw mtopi,a1'
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Warning: invalid CSR `miph', needs `smaia' extension
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Warning: invalid CSR `miph', needs `smaia' extension
 .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
 .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
 .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
@@ -481,6 +514,98 @@
 .*Warning: invalid CSR `hstateen3h', needs rv32i extension
 .*Warning: invalid CSR `hstateen3h', needs `h' extension
 .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
+.*Warning: invalid CSR `siselect', needs `ssaia' extension
+.*Warning: invalid CSR `siselect', needs `ssaia' extension
+.*Warning: invalid CSR `sireg', needs `ssaia' extension
+.*Warning: invalid CSR `sireg', needs `ssaia' extension
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Warning: read-only CSR is written `csrw stopi,a1'
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Warning: invalid CSR `vsireg', needs `ssaia' extension
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Warning: invalid CSR `vsireg', needs `ssaia' extension
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Warning: read-only CSR is written `csrw vstopi,a1'
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
 .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
 .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
 .*Warning: read-only CSR is written `csrw scountovf,a1'
diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.d b/gas/testsuite/gas/riscv/csr-version-1p12.d
index 728e647c552..612aac28076 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p12.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
@@ -601,6 +601,28 @@ Disassembly of section .text:
 [ 	]+[0-9a-f]+:[ 	]+24459073[ 	]+csrw[ 	]+vsip,a1
 [ 	]+[0-9a-f]+:[ 	]+28002573[ 	]+csrr[ 	]+a0,vsatp
 [ 	]+[0-9a-f]+:[ 	]+28059073[ 	]+csrw[ 	]+vsatp,a1
+[ 	]+[0-9a-f]+:[ 	]+35002573[ 	]+csrr[ 	]+a0,miselect
+[ 	]+[0-9a-f]+:[ 	]+35059073[ 	]+csrw[ 	]+miselect,a1
+[ 	]+[0-9a-f]+:[ 	]+35102573[ 	]+csrr[ 	]+a0,mireg
+[ 	]+[0-9a-f]+:[ 	]+35159073[ 	]+csrw[ 	]+mireg,a1
+[ 	]+[0-9a-f]+:[ 	]+35c02573[ 	]+csrr[ 	]+a0,mtopei
+[ 	]+[0-9a-f]+:[ 	]+35c59073[ 	]+csrw[ 	]+mtopei,a1
+[ 	]+[0-9a-f]+:[ 	]+fb002573[ 	]+csrr[ 	]+a0,mtopi
+[ 	]+[0-9a-f]+:[ 	]+fb059073[ 	]+csrw[ 	]+mtopi,a1
+[ 	]+[0-9a-f]+:[ 	]+30802573[ 	]+csrr[ 	]+a0,mvien
+[ 	]+[0-9a-f]+:[ 	]+30859073[ 	]+csrw[ 	]+mvien,a1
+[ 	]+[0-9a-f]+:[ 	]+30902573[ 	]+csrr[ 	]+a0,mvip
+[ 	]+[0-9a-f]+:[ 	]+30959073[ 	]+csrw[ 	]+mvip,a1
+[ 	]+[0-9a-f]+:[ 	]+31302573[ 	]+csrr[ 	]+a0,midelegh
+[ 	]+[0-9a-f]+:[ 	]+31359073[ 	]+csrw[ 	]+midelegh,a1
+[ 	]+[0-9a-f]+:[ 	]+31402573[ 	]+csrr[ 	]+a0,mieh
+[ 	]+[0-9a-f]+:[ 	]+31459073[ 	]+csrw[ 	]+mieh,a1
+[ 	]+[0-9a-f]+:[ 	]+31802573[ 	]+csrr[ 	]+a0,mvienh
+[ 	]+[0-9a-f]+:[ 	]+31859073[ 	]+csrw[ 	]+mvienh,a1
+[ 	]+[0-9a-f]+:[ 	]+31902573[ 	]+csrr[ 	]+a0,mviph
+[ 	]+[0-9a-f]+:[ 	]+31959073[ 	]+csrw[ 	]+mviph,a1
+[ 	]+[0-9a-f]+:[ 	]+35402573[ 	]+csrr[ 	]+a0,miph
+[ 	]+[0-9a-f]+:[ 	]+35459073[ 	]+csrw[ 	]+miph,a1
 [ 	]+[0-9a-f]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
 [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
 [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
@@ -641,6 +663,48 @@ Disassembly of section .text:
 [ 	]+[0-9a-f]+:[ 	]+61e59073[ 	]+csrw[ 	]+hstateen2h,a1
 [ 	]+[0-9a-f]+:[ 	]+61f02573[ 	]+csrr[ 	]+a0,hstateen3h
 [ 	]+[0-9a-f]+:[ 	]+61f59073[ 	]+csrw[ 	]+hstateen3h,a1
+[ 	]+[0-9a-f]+:[ 	]+15002573[ 	]+csrr[ 	]+a0,siselect
+[ 	]+[0-9a-f]+:[ 	]+15059073[ 	]+csrw[ 	]+siselect,a1
+[ 	]+[0-9a-f]+:[ 	]+15102573[ 	]+csrr[ 	]+a0,sireg
+[ 	]+[0-9a-f]+:[ 	]+15159073[ 	]+csrw[ 	]+sireg,a1
+[ 	]+[0-9a-f]+:[ 	]+15c02573[ 	]+csrr[ 	]+a0,stopei
+[ 	]+[0-9a-f]+:[ 	]+15c59073[ 	]+csrw[ 	]+stopei,a1
+[ 	]+[0-9a-f]+:[ 	]+db002573[ 	]+csrr[ 	]+a0,stopi
+[ 	]+[0-9a-f]+:[ 	]+db059073[ 	]+csrw[ 	]+stopi,a1
+[ 	]+[0-9a-f]+:[ 	]+11402573[ 	]+csrr[ 	]+a0,sieh
+[ 	]+[0-9a-f]+:[ 	]+11459073[ 	]+csrw[ 	]+sieh,a1
+[ 	]+[0-9a-f]+:[ 	]+15402573[ 	]+csrr[ 	]+a0,siph
+[ 	]+[0-9a-f]+:[ 	]+15459073[ 	]+csrw[ 	]+siph,a1
+[ 	]+[0-9a-f]+:[ 	]+60802573[ 	]+csrr[ 	]+a0,hvien
+[ 	]+[0-9a-f]+:[ 	]+60859073[ 	]+csrw[ 	]+hvien,a1
+[ 	]+[0-9a-f]+:[ 	]+60902573[ 	]+csrr[ 	]+a0,hvictl
+[ 	]+[0-9a-f]+:[ 	]+60959073[ 	]+csrw[ 	]+hvictl,a1
+[ 	]+[0-9a-f]+:[ 	]+64602573[ 	]+csrr[ 	]+a0,hviprio1
+[ 	]+[0-9a-f]+:[ 	]+64659073[ 	]+csrw[ 	]+hviprio1,a1
+[ 	]+[0-9a-f]+:[ 	]+64702573[ 	]+csrr[ 	]+a0,hviprio2
+[ 	]+[0-9a-f]+:[ 	]+64759073[ 	]+csrw[ 	]+hviprio2,a1
+[ 	]+[0-9a-f]+:[ 	]+25002573[ 	]+csrr[ 	]+a0,vsiselect
+[ 	]+[0-9a-f]+:[ 	]+25059073[ 	]+csrw[ 	]+vsiselect,a1
+[ 	]+[0-9a-f]+:[ 	]+25102573[ 	]+csrr[ 	]+a0,vsireg
+[ 	]+[0-9a-f]+:[ 	]+25159073[ 	]+csrw[ 	]+vsireg,a1
+[ 	]+[0-9a-f]+:[ 	]+25c02573[ 	]+csrr[ 	]+a0,vstopei
+[ 	]+[0-9a-f]+:[ 	]+25c59073[ 	]+csrw[ 	]+vstopei,a1
+[ 	]+[0-9a-f]+:[ 	]+eb002573[ 	]+csrr[ 	]+a0,vstopi
+[ 	]+[0-9a-f]+:[ 	]+eb059073[ 	]+csrw[ 	]+vstopi,a1
+[ 	]+[0-9a-f]+:[ 	]+61302573[ 	]+csrr[ 	]+a0,hidelegh
+[ 	]+[0-9a-f]+:[ 	]+61359073[ 	]+csrw[ 	]+hidelegh,a1
+[ 	]+[0-9a-f]+:[ 	]+61802573[ 	]+csrr[ 	]+a0,hvienh
+[ 	]+[0-9a-f]+:[ 	]+61859073[ 	]+csrw[ 	]+hvienh,a1
+[ 	]+[0-9a-f]+:[ 	]+65502573[ 	]+csrr[ 	]+a0,hviph
+[ 	]+[0-9a-f]+:[ 	]+65559073[ 	]+csrw[ 	]+hviph,a1
+[ 	]+[0-9a-f]+:[ 	]+65602573[ 	]+csrr[ 	]+a0,hviprio1h
+[ 	]+[0-9a-f]+:[ 	]+65659073[ 	]+csrw[ 	]+hviprio1h,a1
+[ 	]+[0-9a-f]+:[ 	]+65702573[ 	]+csrr[ 	]+a0,hviprio2h
+[ 	]+[0-9a-f]+:[ 	]+65759073[ 	]+csrw[ 	]+hviprio2h,a1
+[ 	]+[0-9a-f]+:[ 	]+21402573[ 	]+csrr[ 	]+a0,vsieh
+[ 	]+[0-9a-f]+:[ 	]+21459073[ 	]+csrw[ 	]+vsieh,a1
+[ 	]+[0-9a-f]+:[ 	]+25402573[ 	]+csrr[ 	]+a0,vsiph
+[ 	]+[0-9a-f]+:[ 	]+25459073[ 	]+csrw[ 	]+vsiph,a1
 [ 	]+[0-9a-f]+:[ 	]+da002573[ 	]+csrr[ 	]+a0,scountovf
 [ 	]+[0-9a-f]+:[ 	]+da059073[ 	]+csrw[ 	]+scountovf,a1
 [ 	]+[0-9a-f]+:[ 	]+72302573[ 	]+csrr[ 	]+a0,mhpmevent3h
diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas/riscv/csr-version-1p12.l
index c13efcc6681..1c0bb4ef2d8 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p12.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
@@ -271,6 +271,39 @@
 .*Warning: invalid CSR `vsip', needs `h' extension
 .*Warning: invalid CSR `vsatp', needs `h' extension
 .*Warning: invalid CSR `vsatp', needs `h' extension
+.*Warning: invalid CSR `miselect', needs `smaia' extension
+.*Warning: invalid CSR `miselect', needs `smaia' extension
+.*Warning: invalid CSR `mireg', needs `smaia' extension
+.*Warning: invalid CSR `mireg', needs `smaia' extension
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Warning: read-only CSR is written `csrw mtopi,a1'
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Warning: invalid CSR `miph', needs `smaia' extension
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Warning: invalid CSR `miph', needs `smaia' extension
 .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
 .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
 .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
@@ -343,6 +376,98 @@
 .*Warning: invalid CSR `hstateen3h', needs rv32i extension
 .*Warning: invalid CSR `hstateen3h', needs `h' extension
 .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
+.*Warning: invalid CSR `siselect', needs `ssaia' extension
+.*Warning: invalid CSR `siselect', needs `ssaia' extension
+.*Warning: invalid CSR `sireg', needs `ssaia' extension
+.*Warning: invalid CSR `sireg', needs `ssaia' extension
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Warning: read-only CSR is written `csrw stopi,a1'
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Warning: invalid CSR `vsireg', needs `ssaia' extension
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Warning: invalid CSR `vsireg', needs `ssaia' extension
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Warning: read-only CSR is written `csrw vstopi,a1'
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
 .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
 .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
 .*Warning: read-only CSR is written `csrw scountovf,a1'
diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.d b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
index a34b99f4632..0fe849c269c 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
@@ -601,6 +601,28 @@ Disassembly of section .text:
 [ 	]+[0-9a-f]+:[ 	]+24459073[ 	]+csrw[ 	]+vsip,a1
 [ 	]+[0-9a-f]+:[ 	]+28002573[ 	]+csrr[ 	]+a0,vsatp
 [ 	]+[0-9a-f]+:[ 	]+28059073[ 	]+csrw[ 	]+vsatp,a1
+[ 	]+[0-9a-f]+:[ 	]+35002573[ 	]+csrr[ 	]+a0,miselect
+[ 	]+[0-9a-f]+:[ 	]+35059073[ 	]+csrw[ 	]+miselect,a1
+[ 	]+[0-9a-f]+:[ 	]+35102573[ 	]+csrr[ 	]+a0,mireg
+[ 	]+[0-9a-f]+:[ 	]+35159073[ 	]+csrw[ 	]+mireg,a1
+[ 	]+[0-9a-f]+:[ 	]+35c02573[ 	]+csrr[ 	]+a0,mtopei
+[ 	]+[0-9a-f]+:[ 	]+35c59073[ 	]+csrw[ 	]+mtopei,a1
+[ 	]+[0-9a-f]+:[ 	]+fb002573[ 	]+csrr[ 	]+a0,mtopi
+[ 	]+[0-9a-f]+:[ 	]+fb059073[ 	]+csrw[ 	]+mtopi,a1
+[ 	]+[0-9a-f]+:[ 	]+30802573[ 	]+csrr[ 	]+a0,mvien
+[ 	]+[0-9a-f]+:[ 	]+30859073[ 	]+csrw[ 	]+mvien,a1
+[ 	]+[0-9a-f]+:[ 	]+30902573[ 	]+csrr[ 	]+a0,mvip
+[ 	]+[0-9a-f]+:[ 	]+30959073[ 	]+csrw[ 	]+mvip,a1
+[ 	]+[0-9a-f]+:[ 	]+31302573[ 	]+csrr[ 	]+a0,midelegh
+[ 	]+[0-9a-f]+:[ 	]+31359073[ 	]+csrw[ 	]+midelegh,a1
+[ 	]+[0-9a-f]+:[ 	]+31402573[ 	]+csrr[ 	]+a0,mieh
+[ 	]+[0-9a-f]+:[ 	]+31459073[ 	]+csrw[ 	]+mieh,a1
+[ 	]+[0-9a-f]+:[ 	]+31802573[ 	]+csrr[ 	]+a0,mvienh
+[ 	]+[0-9a-f]+:[ 	]+31859073[ 	]+csrw[ 	]+mvienh,a1
+[ 	]+[0-9a-f]+:[ 	]+31902573[ 	]+csrr[ 	]+a0,mviph
+[ 	]+[0-9a-f]+:[ 	]+31959073[ 	]+csrw[ 	]+mviph,a1
+[ 	]+[0-9a-f]+:[ 	]+35402573[ 	]+csrr[ 	]+a0,miph
+[ 	]+[0-9a-f]+:[ 	]+35459073[ 	]+csrw[ 	]+miph,a1
 [ 	]+[0-9a-f]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
 [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
 [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
@@ -641,6 +663,48 @@ Disassembly of section .text:
 [ 	]+[0-9a-f]+:[ 	]+61e59073[ 	]+csrw[ 	]+hstateen2h,a1
 [ 	]+[0-9a-f]+:[ 	]+61f02573[ 	]+csrr[ 	]+a0,hstateen3h
 [ 	]+[0-9a-f]+:[ 	]+61f59073[ 	]+csrw[ 	]+hstateen3h,a1
+[ 	]+[0-9a-f]+:[ 	]+15002573[ 	]+csrr[ 	]+a0,siselect
+[ 	]+[0-9a-f]+:[ 	]+15059073[ 	]+csrw[ 	]+siselect,a1
+[ 	]+[0-9a-f]+:[ 	]+15102573[ 	]+csrr[ 	]+a0,sireg
+[ 	]+[0-9a-f]+:[ 	]+15159073[ 	]+csrw[ 	]+sireg,a1
+[ 	]+[0-9a-f]+:[ 	]+15c02573[ 	]+csrr[ 	]+a0,stopei
+[ 	]+[0-9a-f]+:[ 	]+15c59073[ 	]+csrw[ 	]+stopei,a1
+[ 	]+[0-9a-f]+:[ 	]+db002573[ 	]+csrr[ 	]+a0,stopi
+[ 	]+[0-9a-f]+:[ 	]+db059073[ 	]+csrw[ 	]+stopi,a1
+[ 	]+[0-9a-f]+:[ 	]+11402573[ 	]+csrr[ 	]+a0,sieh
+[ 	]+[0-9a-f]+:[ 	]+11459073[ 	]+csrw[ 	]+sieh,a1
+[ 	]+[0-9a-f]+:[ 	]+15402573[ 	]+csrr[ 	]+a0,siph
+[ 	]+[0-9a-f]+:[ 	]+15459073[ 	]+csrw[ 	]+siph,a1
+[ 	]+[0-9a-f]+:[ 	]+60802573[ 	]+csrr[ 	]+a0,hvien
+[ 	]+[0-9a-f]+:[ 	]+60859073[ 	]+csrw[ 	]+hvien,a1
+[ 	]+[0-9a-f]+:[ 	]+60902573[ 	]+csrr[ 	]+a0,hvictl
+[ 	]+[0-9a-f]+:[ 	]+60959073[ 	]+csrw[ 	]+hvictl,a1
+[ 	]+[0-9a-f]+:[ 	]+64602573[ 	]+csrr[ 	]+a0,hviprio1
+[ 	]+[0-9a-f]+:[ 	]+64659073[ 	]+csrw[ 	]+hviprio1,a1
+[ 	]+[0-9a-f]+:[ 	]+64702573[ 	]+csrr[ 	]+a0,hviprio2
+[ 	]+[0-9a-f]+:[ 	]+64759073[ 	]+csrw[ 	]+hviprio2,a1
+[ 	]+[0-9a-f]+:[ 	]+25002573[ 	]+csrr[ 	]+a0,vsiselect
+[ 	]+[0-9a-f]+:[ 	]+25059073[ 	]+csrw[ 	]+vsiselect,a1
+[ 	]+[0-9a-f]+:[ 	]+25102573[ 	]+csrr[ 	]+a0,vsireg
+[ 	]+[0-9a-f]+:[ 	]+25159073[ 	]+csrw[ 	]+vsireg,a1
+[ 	]+[0-9a-f]+:[ 	]+25c02573[ 	]+csrr[ 	]+a0,vstopei
+[ 	]+[0-9a-f]+:[ 	]+25c59073[ 	]+csrw[ 	]+vstopei,a1
+[ 	]+[0-9a-f]+:[ 	]+eb002573[ 	]+csrr[ 	]+a0,vstopi
+[ 	]+[0-9a-f]+:[ 	]+eb059073[ 	]+csrw[ 	]+vstopi,a1
+[ 	]+[0-9a-f]+:[ 	]+61302573[ 	]+csrr[ 	]+a0,hidelegh
+[ 	]+[0-9a-f]+:[ 	]+61359073[ 	]+csrw[ 	]+hidelegh,a1
+[ 	]+[0-9a-f]+:[ 	]+61802573[ 	]+csrr[ 	]+a0,hvienh
+[ 	]+[0-9a-f]+:[ 	]+61859073[ 	]+csrw[ 	]+hvienh,a1
+[ 	]+[0-9a-f]+:[ 	]+65502573[ 	]+csrr[ 	]+a0,hviph
+[ 	]+[0-9a-f]+:[ 	]+65559073[ 	]+csrw[ 	]+hviph,a1
+[ 	]+[0-9a-f]+:[ 	]+65602573[ 	]+csrr[ 	]+a0,hviprio1h
+[ 	]+[0-9a-f]+:[ 	]+65659073[ 	]+csrw[ 	]+hviprio1h,a1
+[ 	]+[0-9a-f]+:[ 	]+65702573[ 	]+csrr[ 	]+a0,hviprio2h
+[ 	]+[0-9a-f]+:[ 	]+65759073[ 	]+csrw[ 	]+hviprio2h,a1
+[ 	]+[0-9a-f]+:[ 	]+21402573[ 	]+csrr[ 	]+a0,vsieh
+[ 	]+[0-9a-f]+:[ 	]+21459073[ 	]+csrw[ 	]+vsieh,a1
+[ 	]+[0-9a-f]+:[ 	]+25402573[ 	]+csrr[ 	]+a0,vsiph
+[ 	]+[0-9a-f]+:[ 	]+25459073[ 	]+csrw[ 	]+vsiph,a1
 [ 	]+[0-9a-f]+:[ 	]+da002573[ 	]+csrr[ 	]+a0,scountovf
 [ 	]+[0-9a-f]+:[ 	]+da059073[ 	]+csrw[ 	]+scountovf,a1
 [ 	]+[0-9a-f]+:[ 	]+72302573[ 	]+csrr[ 	]+a0,mhpmevent3h
diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.l b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
index bc35630abd0..c65d0b48e41 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
@@ -461,6 +461,39 @@
 .*Warning: invalid CSR `vsip', needs `h' extension
 .*Warning: invalid CSR `vsatp', needs `h' extension
 .*Warning: invalid CSR `vsatp', needs `h' extension
+.*Warning: invalid CSR `miselect', needs `smaia' extension
+.*Warning: invalid CSR `miselect', needs `smaia' extension
+.*Warning: invalid CSR `mireg', needs `smaia' extension
+.*Warning: invalid CSR `mireg', needs `smaia' extension
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Warning: read-only CSR is written `csrw mtopi,a1'
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Warning: invalid CSR `miph', needs `smaia' extension
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Warning: invalid CSR `miph', needs `smaia' extension
 .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
 .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
 .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
@@ -533,6 +566,98 @@
 .*Warning: invalid CSR `hstateen3h', needs rv32i extension
 .*Warning: invalid CSR `hstateen3h', needs `h' extension
 .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
+.*Warning: invalid CSR `siselect', needs `ssaia' extension
+.*Warning: invalid CSR `siselect', needs `ssaia' extension
+.*Warning: invalid CSR `sireg', needs `ssaia' extension
+.*Warning: invalid CSR `sireg', needs `ssaia' extension
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Warning: read-only CSR is written `csrw stopi,a1'
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Warning: invalid CSR `vsireg', needs `ssaia' extension
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Warning: invalid CSR `vsireg', needs `ssaia' extension
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Warning: read-only CSR is written `csrw vstopi,a1'
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
 .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
 .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
 .*Warning: read-only CSR is written `csrw scountovf,a1'
diff --git a/gas/testsuite/gas/riscv/csr.s b/gas/testsuite/gas/riscv/csr.s
index 397fe0b9eb8..c7406ce34c2 100644
--- a/gas/testsuite/gas/riscv/csr.s
+++ b/gas/testsuite/gas/riscv/csr.s
@@ -337,6 +337,19 @@
 	csr vsip
 	csr vsatp
 
+	# Smaia
+	csr miselect
+	csr mireg
+	csr mtopei
+	csr mtopi
+	csr mvien
+	csr mvip
+	csr midelegh
+	csr mieh
+	csr mvienh
+	csr mviph
+	csr miph
+
 	# Smstateen/Ssstateen extensions
 	csr mstateen0
 	csr mstateen1
@@ -359,6 +372,29 @@
 	csr hstateen2h
 	csr hstateen3h
 
+	# Ssaia
+	csr siselect
+	csr sireg
+	csr stopei
+	csr stopi
+	csr sieh
+	csr siph
+	csr hvien
+	csr hvictl
+	csr hviprio1
+	csr hviprio2
+	csr vsiselect
+	csr vsireg
+	csr vstopei
+	csr vstopi
+	csr hidelegh
+	csr hvienh
+	csr hviph
+	csr hviprio1h
+	csr hviprio2h
+	csr vsieh
+	csr vsiph
+
 	# Sscofpmf extension
 	csr scountovf
 	csr mhpmevent3h
diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
index cdc0919dfe2..06e3df0f5a6 100644
--- a/include/opcode/riscv-opc.h
+++ b/include/opcode/riscv-opc.h
@@ -2661,6 +2661,18 @@
 #define CSR_UIP 0x44
 #define CSR_SEDELEG 0x102
 #define CSR_SIDELEG 0x103
+/* Smaia extension */
+#define CSR_MISELECT 0x350
+#define CSR_MIREG    0x351
+#define CSR_MTOPEI   0x35c
+#define CSR_MTOPI    0xfb0
+#define CSR_MVIEN    0x308
+#define CSR_MVIP     0x309
+#define CSR_MIDELEGH 0x313
+#define CSR_MIEH     0x314
+#define CSR_MVIENH   0x318
+#define CSR_MVIPH    0x319
+#define CSR_MIPH     0x354
 /* Smstateen extension */
 #define CSR_MSTATEEN0 0x30c
 #define CSR_MSTATEEN1 0x30d
@@ -2682,6 +2694,28 @@
 #define CSR_HSTATEEN1H 0x61d
 #define CSR_HSTATEEN2H 0x61e
 #define CSR_HSTATEEN3H 0x61f
+/* Ssaia extension */
+#define CSR_SISELECT 0x150
+#define CSR_SIREG    0x151
+#define CSR_STOPEI   0x15c
+#define CSR_STOPI    0xdb0
+#define CSR_SIEH     0x114
+#define CSR_SIPH     0x154
+#define CSR_HVIEN     0x608
+#define CSR_HVICTL    0x609
+#define CSR_HVIPRIO1  0x646
+#define CSR_HVIPRIO2  0x647
+#define CSR_VSISELECT 0x250
+#define CSR_VSIREG    0x251
+#define CSR_VSTOPEI   0x25c
+#define CSR_VSTOPI    0xeb0
+#define CSR_HIDELEGH  0x613
+#define CSR_HVIENH    0x618
+#define CSR_HVIPH     0x655
+#define CSR_HVIPRIO1H 0x656
+#define CSR_HVIPRIO2H 0x657
+#define CSR_VSIEH     0x214
+#define CSR_VSIPH     0x254
 /* Sscofpmf extension */
 #define CSR_SCOUNTOVF 0xda0
 #define CSR_MHPMEVENT3H 0x723
@@ -3504,6 +3538,18 @@ DECLARE_CSR(vscause, CSR_VSCAUSE, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_C
 DECLARE_CSR(vstval, CSR_VSTVAL, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 DECLARE_CSR(vsip, CSR_VSIP, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 DECLARE_CSR(vsatp, CSR_VSATP, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+/* Smaia extension */
+DECLARE_CSR(miselect, CSR_MISELECT, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(mireg, CSR_MIREG, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(mtopei, CSR_MTOPEI, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(mtopi, CSR_MTOPI, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(mvien, CSR_MVIEN, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(mvip, CSR_MVIP, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(midelegh, CSR_MIDELEGH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(mieh, CSR_MIEH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(mvienh, CSR_MVIENH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(mviph, CSR_MVIPH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(miph, CSR_MIPH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 /* Smstateen/Ssstateen extensions.  */
 DECLARE_CSR(mstateen0, CSR_MSTATEEN0, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 DECLARE_CSR(mstateen1, CSR_MSTATEEN1, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
@@ -3525,6 +3571,28 @@ DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_
 DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+/* Ssaia extension */
+DECLARE_CSR(siselect, CSR_SISELECT, CSR_CLASS_SSAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(sireg, CSR_SIREG, CSR_CLASS_SSAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(stopei, CSR_STOPEI, CSR_CLASS_SSAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(stopi, CSR_STOPI, CSR_CLASS_SSAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(sieh, CSR_SIEH, CSR_CLASS_SSAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(siph, CSR_SIPH, CSR_CLASS_SSAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(vsiselect, CSR_VSISELECT, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(vsireg, CSR_VSIREG, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(vstopei, CSR_VSTOPEI, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(vstopi, CSR_VSTOPI, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(vsieh, CSR_VSIEH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(vsiph, CSR_VSIPH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 /* Sscofpmf extension */
 DECLARE_CSR(scountovf, CSR_SCOUNTOVF, CSR_CLASS_SSCOFPMF, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 DECLARE_CSR(mhpmevent3h, CSR_MHPMEVENT3H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-- 
2.38.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v3] riscv: Add AIA extension support (Smaia, Ssaia)
  2022-11-22 11:09 [PATCH v3] riscv: Add AIA extension support (Smaia, Ssaia) Christoph Muellner
@ 2022-11-25  3:04 ` Nelson Chu
  0 siblings, 0 replies; 2+ messages in thread
From: Nelson Chu @ 2022-11-25  3:04 UTC (permalink / raw)
  To: Christoph Muellner
  Cc: binutils, Andrew Waterman, Palmer Dabbelt, Jim Wilson,
	Philipp Tomsich, Tsukasa OI

Thanks!  Passed the binutils testsuites, so committed.

Nelson

On Tue, Nov 22, 2022 at 7:09 PM Christoph Muellner
<christoph.muellner@vrull.eu> wrote:
>
> From: Christoph Müllner <christoph.muellner@vrull.eu>
>
> This commit adds the AIA extensions (Smaia and Ssaia) CSRs.
>
> bfd/ChangeLog:
>
>         * elfxx-riscv.c: Add 'smaia' and 'ssaia' to the list
>         of known standard extensions.
>
> gas/ChangeLog:
>
>         * config/tc-riscv.c (enum riscv_csr_class):
>         (riscv_csr_address): Add CSR classes for Smaia/Ssaia.
>         * testsuite/gas/riscv/csr-dw-regnums.d: Add new CSRs.
>         * testsuite/gas/riscv/csr-dw-regnums.s: Likewise.
>         * testsuite/gas/riscv/csr-version-1p10.d: Likewise.
>         * testsuite/gas/riscv/csr-version-1p10.l: Likewise.
>         * testsuite/gas/riscv/csr-version-1p11.d: Likewise.
>         * testsuite/gas/riscv/csr-version-1p11.l: Likewise.
>         * testsuite/gas/riscv/csr-version-1p12.d: Likewise.
>         * testsuite/gas/riscv/csr-version-1p12.l: Likewise.
>         * testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
>         * testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
>         * testsuite/gas/riscv/csr.s: Likewise.
>
> include/ChangeLog:
>
>         * opcode/riscv-opc.h (CSR_MISELECT): New CSR macro.
>         (CSR_MIREG): Likewise.
>         (CSR_MTOPEI): Likewise.
>         (CSR_MTOPI): Likewise.
>         (CSR_MVIEN): Likewise.
>         (CSR_MVIP): Likewise.
>         (CSR_MIDELEGH): Likewise.
>         (CSR_MIEH): Likewise.
>         (CSR_MVIENH): Likewise.
>         (CSR_MVIPH): Likewise.
>         (CSR_MIPH): Likewise.
>         (CSR_SISELECT): Likewise.
>         (CSR_SIREG): Likewise.
>         (CSR_STOPEI): Likewise.
>         (CSR_STOPI): Likewise.
>         (CSR_SIEH): Likewise.
>         (CSR_SIPH): Likewise.
>         (CSR_HVIEN): Likewise.
>         (CSR_HVICTL): Likewise.
>         (CSR_HVIPRIO1): Likewise.
>         (CSR_HVIPRIO2): Likewise.
>         (CSR_VSISELECT): Likewise.
>         (CSR_VSIREG): Likewise.
>         (CSR_VSTOPEI): Likewise.
>         (CSR_VSTOPI): Likewise.
>         (CSR_HIDELEGH): Likewise.
>         (CSR_HVIENH): Likewise.
>         (CSR_HVIPH): Likewise.
>         (CSR_HVIPRIO1H): Likewise.
>         (CSR_HVIPRIO2H): Likewise.
>         (CSR_VSIEH): Likewise.
>         (CSR_VSIPH): Likewise.
>         (DECLARE_CSR): Add CSRs for Smaia and Ssaia.
>
> Changes for v3:
> - Imply ssaia for smaia
> - Imply zicsr for ssaia (and transitively smaia)
> - Move hypervisor CSRs to Ssaia+H
> - Rebase on upstream/master
>
> Changes for v2:
> - Add hypervisor and VS CSRs
> - Fix whitespace issue
>
> Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
> ---
>  bfd/elfxx-riscv.c                           |   4 +
>  gas/config/tc-riscv.c                       |  22 ++++
>  gas/testsuite/gas/riscv/csr-dw-regnums.d    |  32 +++++
>  gas/testsuite/gas/riscv/csr-dw-regnums.s    |  36 ++++++
>  gas/testsuite/gas/riscv/csr-version-1p10.d  |  64 ++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p10.l  | 125 ++++++++++++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p11.d  |  64 ++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p11.l  | 125 ++++++++++++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p12.d  |  64 ++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p12.l  | 125 ++++++++++++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p9p1.d |  64 ++++++++++
>  gas/testsuite/gas/riscv/csr-version-1p9p1.l | 125 ++++++++++++++++++++
>  gas/testsuite/gas/riscv/csr.s               |  36 ++++++
>  include/opcode/riscv-opc.h                  |  68 +++++++++++
>  14 files changed, 954 insertions(+)
>
> diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
> index afbde56b9e5..a81ba3e303f 100644
> --- a/bfd/elfxx-riscv.c
> +++ b/bfd/elfxx-riscv.c
> @@ -1097,8 +1097,10 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
>    {"zks", "zbkx",      check_implicit_always},
>    {"zks", "zksed",     check_implicit_always},
>    {"zks", "zksh",      check_implicit_always},
> +  {"smaia", "ssaia",           check_implicit_always},
>    {"smstateen", "ssstateen",   check_implicit_always},
>    {"smepmp", "zicsr",          check_implicit_always},
> +  {"ssaia", "zicsr",           check_implicit_always},
>    {"sscofpmf", "zicsr",                check_implicit_always},
>    {"ssstateen", "zicsr",       check_implicit_always},
>    {"sstc", "zicsr",            check_implicit_always},
> @@ -1217,8 +1219,10 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
>
>  static struct riscv_supported_ext riscv_supported_std_s_ext[] =
>  {
> +  {"smaia",            ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"smepmp",           ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"smstateen",                ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> +  {"ssaia",            ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"sscofpmf",         ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"ssstateen",                ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"sstc",             ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> index 019545171f5..96d71dd1db6 100644
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -68,8 +68,14 @@ enum riscv_csr_class
>    CSR_CLASS_DEBUG,     /* debug CSR */
>    CSR_CLASS_H,         /* hypervisor */
>    CSR_CLASS_H_32,      /* hypervisor, rv32 only */
> +  CSR_CLASS_SMAIA,             /* Smaia */
> +  CSR_CLASS_SMAIA_32,          /* Smaia, rv32 only */
>    CSR_CLASS_SMSTATEEN,         /* Smstateen only */
>    CSR_CLASS_SMSTATEEN_32,      /* Smstateen RV32 only */
> +  CSR_CLASS_SSAIA,             /* Ssaia */
> +  CSR_CLASS_SSAIA_AND_H,       /* Ssaia with H */
> +  CSR_CLASS_SSAIA_32,          /* Ssaia, rv32 only */
> +  CSR_CLASS_SSAIA_AND_H_32,    /* Ssaia with H, rv32 only */
>    CSR_CLASS_SSSTATEEN,         /* S[ms]stateen only */
>    CSR_CLASS_SSSTATEEN_AND_H,   /* S[ms]stateen only (with H) */
>    CSR_CLASS_SSSTATEEN_AND_H_32,        /* S[ms]stateen RV32 only (with H) */
> @@ -1029,11 +1035,27 @@ riscv_csr_address (const char *csr_name,
>      case CSR_CLASS_V:
>        extension = "zve32x";
>        break;
> +    case CSR_CLASS_SMAIA_32:
> +      is_rv32_only = true;
> +      /* Fall through.  */
> +    case CSR_CLASS_SMAIA:
> +      extension = "smaia";
> +      break;
>      case CSR_CLASS_SMSTATEEN:
>      case CSR_CLASS_SMSTATEEN_32:
>        is_rv32_only = (csr_class == CSR_CLASS_SMSTATEEN_32);
>        extension = "smstateen";
>        break;
> +    case CSR_CLASS_SSAIA:
> +    case CSR_CLASS_SSAIA_AND_H:
> +    case CSR_CLASS_SSAIA_32:
> +    case CSR_CLASS_SSAIA_AND_H_32:
> +      is_rv32_only = (csr_class == CSR_CLASS_SSAIA_32
> +                     || csr_class == CSR_CLASS_SSAIA_AND_H_32);
> +      is_h_required = (csr_class == CSR_CLASS_SSAIA_AND_H
> +                      || csr_class == CSR_CLASS_SSAIA_AND_H_32);
> +      extension = "ssaia";
> +      break;
>      case CSR_CLASS_SSSTATEEN:
>      case CSR_CLASS_SSSTATEEN_AND_H:
>      case CSR_CLASS_SSSTATEEN_AND_H_32:
> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> index b4b3806a085..fd830666ab8 100644
> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> @@ -313,6 +313,17 @@ Contents of the .* section:
>    DW_CFA_offset_extended_sf: r4675 \(vstval\) at cfa\+2316
>    DW_CFA_offset_extended_sf: r4676 \(vsip\) at cfa\+2320
>    DW_CFA_offset_extended_sf: r4736 \(vsatp\) at cfa\+2560
> +  DW_CFA_offset_extended_sf: r4944 \(miselect\) at cfa\+3392
> +  DW_CFA_offset_extended_sf: r4945 \(mireg\) at cfa\+3396
> +  DW_CFA_offset_extended_sf: r4956 \(mtopei\) at cfa\+3440
> +  DW_CFA_offset_extended_sf: r8112 \(mtopi\) at cfa\+16064
> +  DW_CFA_offset_extended_sf: r4872 \(mvien\) at cfa\+3104
> +  DW_CFA_offset_extended_sf: r4873 \(mvip\) at cfa\+3108
> +  DW_CFA_offset_extended_sf: r4883 \(midelegh\) at cfa\+3148
> +  DW_CFA_offset_extended_sf: r4884 \(mieh\) at cfa\+3152
> +  DW_CFA_offset_extended_sf: r4888 \(mvienh\) at cfa\+3168
> +  DW_CFA_offset_extended_sf: r4889 \(mviph\) at cfa\+3172
> +  DW_CFA_offset_extended_sf: r4948 \(miph\) at cfa\+3408
>    DW_CFA_offset_extended_sf: r4876 \(mstateen0\) at cfa\+3120
>    DW_CFA_offset_extended_sf: r4877 \(mstateen1\) at cfa\+3124
>    DW_CFA_offset_extended_sf: r4878 \(mstateen2\) at cfa\+3128
> @@ -333,6 +344,27 @@ Contents of the .* section:
>    DW_CFA_offset_extended_sf: r5661 \(hstateen1h\) at cfa\+6260
>    DW_CFA_offset_extended_sf: r5662 \(hstateen2h\) at cfa\+6264
>    DW_CFA_offset_extended_sf: r5663 \(hstateen3h\) at cfa\+6268
> +  DW_CFA_offset_extended_sf: r4432 \(siselect\) at cfa\+1344
> +  DW_CFA_offset_extended_sf: r4433 \(sireg\) at cfa\+1348
> +  DW_CFA_offset_extended_sf: r4444 \(stopei\) at cfa\+1392
> +  DW_CFA_offset_extended_sf: r7600 \(stopi\) at cfa\+14016
> +  DW_CFA_offset_extended_sf: r4372 \(sieh\) at cfa\+1104
> +  DW_CFA_offset_extended_sf: r4436 \(siph\) at cfa\+1360
> +  DW_CFA_offset_extended_sf: r5640 \(hvien\) at cfa\+6176
> +  DW_CFA_offset_extended_sf: r5641 \(hvictl\) at cfa\+6180
> +  DW_CFA_offset_extended_sf: r5702 \(hviprio1\) at cfa\+6424
> +  DW_CFA_offset_extended_sf: r5703 \(hviprio2\) at cfa\+6428
> +  DW_CFA_offset_extended_sf: r4688 \(vsiselect\) at cfa\+2368
> +  DW_CFA_offset_extended_sf: r4689 \(vsireg\) at cfa\+2372
> +  DW_CFA_offset_extended_sf: r4700 \(vstopei\) at cfa\+2416
> +  DW_CFA_offset_extended_sf: r7856 \(vstopi\) at cfa\+15040
> +  DW_CFA_offset_extended_sf: r5651 \(hidelegh\) at cfa\+6220
> +  DW_CFA_offset_extended_sf: r5656 \(hvienh\) at cfa\+6240
> +  DW_CFA_offset_extended_sf: r5717 \(hviph\) at cfa\+6484
> +  DW_CFA_offset_extended_sf: r5718 \(hviprio1h\) at cfa\+6488
> +  DW_CFA_offset_extended_sf: r5719 \(hviprio2h\) at cfa\+6492
> +  DW_CFA_offset_extended_sf: r4628 \(vsieh\) at cfa\+2128
> +  DW_CFA_offset_extended_sf: r4692 \(vsiph\) at cfa\+2384
>    DW_CFA_offset_extended_sf: r7584 \(scountovf\) at cfa\+13952
>    DW_CFA_offset_extended_sf: r5923 \(mhpmevent3h\) at cfa\+7308
>    DW_CFA_offset_extended_sf: r5924 \(mhpmevent4h\) at cfa\+7312
> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.s b/gas/testsuite/gas/riscv/csr-dw-regnums.s
> index 6cfa415ebc2..b8b0f790229 100644
> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.s
> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.s
> @@ -1,6 +1,8 @@
>  # Check that CFI directives can accept all of the CSR names (including
>  # aliases).  The results for this test also ensures that the DWARF
>  # register numbers for the CSRs shouldn't change.
> +# The register numbers are specified to be CSR-ID + 4096 (see psABI spec).
> +# The CFI offsets in this file are CSR-ID x 4.
>
>         .text
>         .global _start
> @@ -307,6 +309,18 @@ _start:
>         .cfi_offset vstval, 2316
>         .cfi_offset vsip, 2320
>         .cfi_offset vsatp, 2560
> +       # Smaia extension
> +       .cfi_offset miselect, 3392
> +       .cfi_offset mireg, 3396
> +       .cfi_offset mtopei, 3440
> +       .cfi_offset mtopi, 16064
> +       .cfi_offset mvien, 3104
> +       .cfi_offset mvip, 3108
> +       .cfi_offset midelegh, 3148
> +       .cfi_offset mieh, 3152
> +       .cfi_offset mvienh, 3168
> +       .cfi_offset mviph, 3172
> +       .cfi_offset miph, 3408
>         # Smstateen extension
>         .cfi_offset mstateen0, 3120
>         .cfi_offset mstateen1, 3124
> @@ -328,6 +342,28 @@ _start:
>         .cfi_offset hstateen1h, 6260
>         .cfi_offset hstateen2h, 6264
>         .cfi_offset hstateen3h, 6268
> +       # Ssaia extension
> +       .cfi_offset siselect, 1344
> +       .cfi_offset sireg, 1348
> +       .cfi_offset stopei, 1392
> +       .cfi_offset stopi, 14016
> +       .cfi_offset sieh, 1104
> +       .cfi_offset siph, 1360
> +       .cfi_offset hvien, 6176
> +       .cfi_offset hvictl, 6180
> +       .cfi_offset hviprio1, 6424
> +       .cfi_offset hviprio2, 6428
> +       .cfi_offset vsiselect, 2368
> +       .cfi_offset vsireg, 2372
> +       .cfi_offset vstopei, 2416
> +       .cfi_offset vstopi, 15040
> +       .cfi_offset hidelegh, 6220
> +       .cfi_offset hvienh, 6240
> +       .cfi_offset hviph, 6484
> +       .cfi_offset hviprio1h, 6488
> +       .cfi_offset hviprio2h, 6492
> +       .cfi_offset vsieh, 2128
> +       .cfi_offset vsiph, 2384
>         # Sscofpmf extension
>         .cfi_offset scountovf, 13952
>         .cfi_offset mhpmevent3h, 7308
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.d b/gas/testsuite/gas/riscv/csr-version-1p10.d
> index bd8b10302e3..ee41e1025cc 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p10.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
> @@ -601,6 +601,28 @@ Disassembly of section .text:
>  [      ]+[0-9a-f]+:[   ]+24459073[     ]+csrw[         ]+vsip,a1
>  [      ]+[0-9a-f]+:[   ]+28002573[     ]+csrr[         ]+a0,vsatp
>  [      ]+[0-9a-f]+:[   ]+28059073[     ]+csrw[         ]+vsatp,a1
> +[      ]+[0-9a-f]+:[   ]+35002573[     ]+csrr[         ]+a0,miselect
> +[      ]+[0-9a-f]+:[   ]+35059073[     ]+csrw[         ]+miselect,a1
> +[      ]+[0-9a-f]+:[   ]+35102573[     ]+csrr[         ]+a0,mireg
> +[      ]+[0-9a-f]+:[   ]+35159073[     ]+csrw[         ]+mireg,a1
> +[      ]+[0-9a-f]+:[   ]+35c02573[     ]+csrr[         ]+a0,mtopei
> +[      ]+[0-9a-f]+:[   ]+35c59073[     ]+csrw[         ]+mtopei,a1
> +[      ]+[0-9a-f]+:[   ]+fb002573[     ]+csrr[         ]+a0,mtopi
> +[      ]+[0-9a-f]+:[   ]+fb059073[     ]+csrw[         ]+mtopi,a1
> +[      ]+[0-9a-f]+:[   ]+30802573[     ]+csrr[         ]+a0,mvien
> +[      ]+[0-9a-f]+:[   ]+30859073[     ]+csrw[         ]+mvien,a1
> +[      ]+[0-9a-f]+:[   ]+30902573[     ]+csrr[         ]+a0,mvip
> +[      ]+[0-9a-f]+:[   ]+30959073[     ]+csrw[         ]+mvip,a1
> +[      ]+[0-9a-f]+:[   ]+31302573[     ]+csrr[         ]+a0,midelegh
> +[      ]+[0-9a-f]+:[   ]+31359073[     ]+csrw[         ]+midelegh,a1
> +[      ]+[0-9a-f]+:[   ]+31402573[     ]+csrr[         ]+a0,mieh
> +[      ]+[0-9a-f]+:[   ]+31459073[     ]+csrw[         ]+mieh,a1
> +[      ]+[0-9a-f]+:[   ]+31802573[     ]+csrr[         ]+a0,mvienh
> +[      ]+[0-9a-f]+:[   ]+31859073[     ]+csrw[         ]+mvienh,a1
> +[      ]+[0-9a-f]+:[   ]+31902573[     ]+csrr[         ]+a0,mviph
> +[      ]+[0-9a-f]+:[   ]+31959073[     ]+csrw[         ]+mviph,a1
> +[      ]+[0-9a-f]+:[   ]+35402573[     ]+csrr[         ]+a0,miph
> +[      ]+[0-9a-f]+:[   ]+35459073[     ]+csrw[         ]+miph,a1
>  [      ]+[0-9a-f]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> @@ -641,6 +663,48 @@ Disassembly of section .text:
>  [      ]+[0-9a-f]+:[   ]+61e59073[     ]+csrw[         ]+hstateen2h,a1
>  [      ]+[0-9a-f]+:[   ]+61f02573[     ]+csrr[         ]+a0,hstateen3h
>  [      ]+[0-9a-f]+:[   ]+61f59073[     ]+csrw[         ]+hstateen3h,a1
> +[      ]+[0-9a-f]+:[   ]+15002573[     ]+csrr[         ]+a0,siselect
> +[      ]+[0-9a-f]+:[   ]+15059073[     ]+csrw[         ]+siselect,a1
> +[      ]+[0-9a-f]+:[   ]+15102573[     ]+csrr[         ]+a0,sireg
> +[      ]+[0-9a-f]+:[   ]+15159073[     ]+csrw[         ]+sireg,a1
> +[      ]+[0-9a-f]+:[   ]+15c02573[     ]+csrr[         ]+a0,stopei
> +[      ]+[0-9a-f]+:[   ]+15c59073[     ]+csrw[         ]+stopei,a1
> +[      ]+[0-9a-f]+:[   ]+db002573[     ]+csrr[         ]+a0,stopi
> +[      ]+[0-9a-f]+:[   ]+db059073[     ]+csrw[         ]+stopi,a1
> +[      ]+[0-9a-f]+:[   ]+11402573[     ]+csrr[         ]+a0,sieh
> +[      ]+[0-9a-f]+:[   ]+11459073[     ]+csrw[         ]+sieh,a1
> +[      ]+[0-9a-f]+:[   ]+15402573[     ]+csrr[         ]+a0,siph
> +[      ]+[0-9a-f]+:[   ]+15459073[     ]+csrw[         ]+siph,a1
> +[      ]+[0-9a-f]+:[   ]+60802573[     ]+csrr[         ]+a0,hvien
> +[      ]+[0-9a-f]+:[   ]+60859073[     ]+csrw[         ]+hvien,a1
> +[      ]+[0-9a-f]+:[   ]+60902573[     ]+csrr[         ]+a0,hvictl
> +[      ]+[0-9a-f]+:[   ]+60959073[     ]+csrw[         ]+hvictl,a1
> +[      ]+[0-9a-f]+:[   ]+64602573[     ]+csrr[         ]+a0,hviprio1
> +[      ]+[0-9a-f]+:[   ]+64659073[     ]+csrw[         ]+hviprio1,a1
> +[      ]+[0-9a-f]+:[   ]+64702573[     ]+csrr[         ]+a0,hviprio2
> +[      ]+[0-9a-f]+:[   ]+64759073[     ]+csrw[         ]+hviprio2,a1
> +[      ]+[0-9a-f]+:[   ]+25002573[     ]+csrr[         ]+a0,vsiselect
> +[      ]+[0-9a-f]+:[   ]+25059073[     ]+csrw[         ]+vsiselect,a1
> +[      ]+[0-9a-f]+:[   ]+25102573[     ]+csrr[         ]+a0,vsireg
> +[      ]+[0-9a-f]+:[   ]+25159073[     ]+csrw[         ]+vsireg,a1
> +[      ]+[0-9a-f]+:[   ]+25c02573[     ]+csrr[         ]+a0,vstopei
> +[      ]+[0-9a-f]+:[   ]+25c59073[     ]+csrw[         ]+vstopei,a1
> +[      ]+[0-9a-f]+:[   ]+eb002573[     ]+csrr[         ]+a0,vstopi
> +[      ]+[0-9a-f]+:[   ]+eb059073[     ]+csrw[         ]+vstopi,a1
> +[      ]+[0-9a-f]+:[   ]+61302573[     ]+csrr[         ]+a0,hidelegh
> +[      ]+[0-9a-f]+:[   ]+61359073[     ]+csrw[         ]+hidelegh,a1
> +[      ]+[0-9a-f]+:[   ]+61802573[     ]+csrr[         ]+a0,hvienh
> +[      ]+[0-9a-f]+:[   ]+61859073[     ]+csrw[         ]+hvienh,a1
> +[      ]+[0-9a-f]+:[   ]+65502573[     ]+csrr[         ]+a0,hviph
> +[      ]+[0-9a-f]+:[   ]+65559073[     ]+csrw[         ]+hviph,a1
> +[      ]+[0-9a-f]+:[   ]+65602573[     ]+csrr[         ]+a0,hviprio1h
> +[      ]+[0-9a-f]+:[   ]+65659073[     ]+csrw[         ]+hviprio1h,a1
> +[      ]+[0-9a-f]+:[   ]+65702573[     ]+csrr[         ]+a0,hviprio2h
> +[      ]+[0-9a-f]+:[   ]+65759073[     ]+csrw[         ]+hviprio2h,a1
> +[      ]+[0-9a-f]+:[   ]+21402573[     ]+csrr[         ]+a0,vsieh
> +[      ]+[0-9a-f]+:[   ]+21459073[     ]+csrw[         ]+vsieh,a1
> +[      ]+[0-9a-f]+:[   ]+25402573[     ]+csrr[         ]+a0,vsiph
> +[      ]+[0-9a-f]+:[   ]+25459073[     ]+csrw[         ]+vsiph,a1
>  [      ]+[0-9a-f]+:[   ]+da002573[     ]+csrr[         ]+a0,scountovf
>  [      ]+[0-9a-f]+:[   ]+da059073[     ]+csrw[         ]+scountovf,a1
>  [      ]+[0-9a-f]+:[   ]+72302573[     ]+csrr[         ]+a0,mhpmevent3h
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas/riscv/csr-version-1p10.l
> index 03af32d3bef..e677b78b8bb 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
> @@ -411,6 +411,39 @@
>  .*Warning: invalid CSR `vsip', needs `h' extension
>  .*Warning: invalid CSR `vsatp', needs `h' extension
>  .*Warning: invalid CSR `vsatp', needs `h' extension
> +.*Warning: invalid CSR `miselect', needs `smaia' extension
> +.*Warning: invalid CSR `miselect', needs `smaia' extension
> +.*Warning: invalid CSR `mireg', needs `smaia' extension
> +.*Warning: invalid CSR `mireg', needs `smaia' extension
> +.*Warning: invalid CSR `mtopei', needs `smaia' extension
> +.*Warning: invalid CSR `mtopei', needs `smaia' extension
> +.*Warning: invalid CSR `mtopi', needs `smaia' extension
> +.*Warning: invalid CSR `mtopi', needs `smaia' extension
> +.*Warning: read-only CSR is written `csrw mtopi,a1'
> +.*Warning: invalid CSR `mvien', needs `smaia' extension
> +.*Warning: invalid CSR `mvien', needs `smaia' extension
> +.*Warning: invalid CSR `mvip', needs `smaia' extension
> +.*Warning: invalid CSR `mvip', needs `smaia' extension
> +.*Warning: invalid CSR `midelegh', needs rv32i extension
> +.*Warning: invalid CSR `midelegh', needs `smaia' extension
> +.*Warning: invalid CSR `midelegh', needs rv32i extension
> +.*Warning: invalid CSR `midelegh', needs `smaia' extension
> +.*Warning: invalid CSR `mieh', needs rv32i extension
> +.*Warning: invalid CSR `mieh', needs `smaia' extension
> +.*Warning: invalid CSR `mieh', needs rv32i extension
> +.*Warning: invalid CSR `mieh', needs `smaia' extension
> +.*Warning: invalid CSR `mvienh', needs rv32i extension
> +.*Warning: invalid CSR `mvienh', needs `smaia' extension
> +.*Warning: invalid CSR `mvienh', needs rv32i extension
> +.*Warning: invalid CSR `mvienh', needs `smaia' extension
> +.*Warning: invalid CSR `mviph', needs rv32i extension
> +.*Warning: invalid CSR `mviph', needs `smaia' extension
> +.*Warning: invalid CSR `mviph', needs rv32i extension
> +.*Warning: invalid CSR `mviph', needs `smaia' extension
> +.*Warning: invalid CSR `miph', needs rv32i extension
> +.*Warning: invalid CSR `miph', needs `smaia' extension
> +.*Warning: invalid CSR `miph', needs rv32i extension
> +.*Warning: invalid CSR `miph', needs `smaia' extension
>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>  .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
> @@ -483,6 +516,98 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
> +.*Warning: invalid CSR `siselect', needs `ssaia' extension
> +.*Warning: invalid CSR `siselect', needs `ssaia' extension
> +.*Warning: invalid CSR `sireg', needs `ssaia' extension
> +.*Warning: invalid CSR `sireg', needs `ssaia' extension
> +.*Warning: invalid CSR `stopei', needs `ssaia' extension
> +.*Warning: invalid CSR `stopei', needs `ssaia' extension
> +.*Warning: invalid CSR `stopi', needs `ssaia' extension
> +.*Warning: invalid CSR `stopi', needs `ssaia' extension
> +.*Warning: read-only CSR is written `csrw stopi,a1'
> +.*Warning: invalid CSR `sieh', needs rv32i extension
> +.*Warning: invalid CSR `sieh', needs `ssaia' extension
> +.*Warning: invalid CSR `sieh', needs rv32i extension
> +.*Warning: invalid CSR `sieh', needs `ssaia' extension
> +.*Warning: invalid CSR `siph', needs rv32i extension
> +.*Warning: invalid CSR `siph', needs `ssaia' extension
> +.*Warning: invalid CSR `siph', needs rv32i extension
> +.*Warning: invalid CSR `siph', needs `ssaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `ssaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `ssaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `ssaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiselect', needs `h' extension
> +.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiselect', needs `h' extension
> +.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
> +.*Warning: invalid CSR `vsireg', needs `h' extension
> +.*Warning: invalid CSR `vsireg', needs `ssaia' extension
> +.*Warning: invalid CSR `vsireg', needs `h' extension
> +.*Warning: invalid CSR `vsireg', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopei', needs `h' extension
> +.*Warning: invalid CSR `vstopei', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopei', needs `h' extension
> +.*Warning: invalid CSR `vstopei', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopi', needs `h' extension
> +.*Warning: invalid CSR `vstopi', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopi', needs `h' extension
> +.*Warning: invalid CSR `vstopi', needs `ssaia' extension
> +.*Warning: read-only CSR is written `csrw vstopi,a1'
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `ssaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `ssaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `ssaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
> +.*Warning: invalid CSR `vsieh', needs rv32i extension
> +.*Warning: invalid CSR `vsieh', needs `h' extension
> +.*Warning: invalid CSR `vsieh', needs `ssaia' extension
> +.*Warning: invalid CSR `vsieh', needs rv32i extension
> +.*Warning: invalid CSR `vsieh', needs `h' extension
> +.*Warning: invalid CSR `vsieh', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiph', needs rv32i extension
> +.*Warning: invalid CSR `vsiph', needs `h' extension
> +.*Warning: invalid CSR `vsiph', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiph', needs rv32i extension
> +.*Warning: invalid CSR `vsiph', needs `h' extension
> +.*Warning: invalid CSR `vsiph', needs `ssaia' extension
>  .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>  .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>  .*Warning: read-only CSR is written `csrw scountovf,a1'
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.d b/gas/testsuite/gas/riscv/csr-version-1p11.d
> index 5d6333884f1..a83b1bf68f9 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p11.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
> @@ -601,6 +601,28 @@ Disassembly of section .text:
>  [      ]+[0-9a-f]+:[   ]+24459073[     ]+csrw[         ]+vsip,a1
>  [      ]+[0-9a-f]+:[   ]+28002573[     ]+csrr[         ]+a0,vsatp
>  [      ]+[0-9a-f]+:[   ]+28059073[     ]+csrw[         ]+vsatp,a1
> +[      ]+[0-9a-f]+:[   ]+35002573[     ]+csrr[         ]+a0,miselect
> +[      ]+[0-9a-f]+:[   ]+35059073[     ]+csrw[         ]+miselect,a1
> +[      ]+[0-9a-f]+:[   ]+35102573[     ]+csrr[         ]+a0,mireg
> +[      ]+[0-9a-f]+:[   ]+35159073[     ]+csrw[         ]+mireg,a1
> +[      ]+[0-9a-f]+:[   ]+35c02573[     ]+csrr[         ]+a0,mtopei
> +[      ]+[0-9a-f]+:[   ]+35c59073[     ]+csrw[         ]+mtopei,a1
> +[      ]+[0-9a-f]+:[   ]+fb002573[     ]+csrr[         ]+a0,mtopi
> +[      ]+[0-9a-f]+:[   ]+fb059073[     ]+csrw[         ]+mtopi,a1
> +[      ]+[0-9a-f]+:[   ]+30802573[     ]+csrr[         ]+a0,mvien
> +[      ]+[0-9a-f]+:[   ]+30859073[     ]+csrw[         ]+mvien,a1
> +[      ]+[0-9a-f]+:[   ]+30902573[     ]+csrr[         ]+a0,mvip
> +[      ]+[0-9a-f]+:[   ]+30959073[     ]+csrw[         ]+mvip,a1
> +[      ]+[0-9a-f]+:[   ]+31302573[     ]+csrr[         ]+a0,midelegh
> +[      ]+[0-9a-f]+:[   ]+31359073[     ]+csrw[         ]+midelegh,a1
> +[      ]+[0-9a-f]+:[   ]+31402573[     ]+csrr[         ]+a0,mieh
> +[      ]+[0-9a-f]+:[   ]+31459073[     ]+csrw[         ]+mieh,a1
> +[      ]+[0-9a-f]+:[   ]+31802573[     ]+csrr[         ]+a0,mvienh
> +[      ]+[0-9a-f]+:[   ]+31859073[     ]+csrw[         ]+mvienh,a1
> +[      ]+[0-9a-f]+:[   ]+31902573[     ]+csrr[         ]+a0,mviph
> +[      ]+[0-9a-f]+:[   ]+31959073[     ]+csrw[         ]+mviph,a1
> +[      ]+[0-9a-f]+:[   ]+35402573[     ]+csrr[         ]+a0,miph
> +[      ]+[0-9a-f]+:[   ]+35459073[     ]+csrw[         ]+miph,a1
>  [      ]+[0-9a-f]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> @@ -641,6 +663,48 @@ Disassembly of section .text:
>  [      ]+[0-9a-f]+:[   ]+61e59073[     ]+csrw[         ]+hstateen2h,a1
>  [      ]+[0-9a-f]+:[   ]+61f02573[     ]+csrr[         ]+a0,hstateen3h
>  [      ]+[0-9a-f]+:[   ]+61f59073[     ]+csrw[         ]+hstateen3h,a1
> +[      ]+[0-9a-f]+:[   ]+15002573[     ]+csrr[         ]+a0,siselect
> +[      ]+[0-9a-f]+:[   ]+15059073[     ]+csrw[         ]+siselect,a1
> +[      ]+[0-9a-f]+:[   ]+15102573[     ]+csrr[         ]+a0,sireg
> +[      ]+[0-9a-f]+:[   ]+15159073[     ]+csrw[         ]+sireg,a1
> +[      ]+[0-9a-f]+:[   ]+15c02573[     ]+csrr[         ]+a0,stopei
> +[      ]+[0-9a-f]+:[   ]+15c59073[     ]+csrw[         ]+stopei,a1
> +[      ]+[0-9a-f]+:[   ]+db002573[     ]+csrr[         ]+a0,stopi
> +[      ]+[0-9a-f]+:[   ]+db059073[     ]+csrw[         ]+stopi,a1
> +[      ]+[0-9a-f]+:[   ]+11402573[     ]+csrr[         ]+a0,sieh
> +[      ]+[0-9a-f]+:[   ]+11459073[     ]+csrw[         ]+sieh,a1
> +[      ]+[0-9a-f]+:[   ]+15402573[     ]+csrr[         ]+a0,siph
> +[      ]+[0-9a-f]+:[   ]+15459073[     ]+csrw[         ]+siph,a1
> +[      ]+[0-9a-f]+:[   ]+60802573[     ]+csrr[         ]+a0,hvien
> +[      ]+[0-9a-f]+:[   ]+60859073[     ]+csrw[         ]+hvien,a1
> +[      ]+[0-9a-f]+:[   ]+60902573[     ]+csrr[         ]+a0,hvictl
> +[      ]+[0-9a-f]+:[   ]+60959073[     ]+csrw[         ]+hvictl,a1
> +[      ]+[0-9a-f]+:[   ]+64602573[     ]+csrr[         ]+a0,hviprio1
> +[      ]+[0-9a-f]+:[   ]+64659073[     ]+csrw[         ]+hviprio1,a1
> +[      ]+[0-9a-f]+:[   ]+64702573[     ]+csrr[         ]+a0,hviprio2
> +[      ]+[0-9a-f]+:[   ]+64759073[     ]+csrw[         ]+hviprio2,a1
> +[      ]+[0-9a-f]+:[   ]+25002573[     ]+csrr[         ]+a0,vsiselect
> +[      ]+[0-9a-f]+:[   ]+25059073[     ]+csrw[         ]+vsiselect,a1
> +[      ]+[0-9a-f]+:[   ]+25102573[     ]+csrr[         ]+a0,vsireg
> +[      ]+[0-9a-f]+:[   ]+25159073[     ]+csrw[         ]+vsireg,a1
> +[      ]+[0-9a-f]+:[   ]+25c02573[     ]+csrr[         ]+a0,vstopei
> +[      ]+[0-9a-f]+:[   ]+25c59073[     ]+csrw[         ]+vstopei,a1
> +[      ]+[0-9a-f]+:[   ]+eb002573[     ]+csrr[         ]+a0,vstopi
> +[      ]+[0-9a-f]+:[   ]+eb059073[     ]+csrw[         ]+vstopi,a1
> +[      ]+[0-9a-f]+:[   ]+61302573[     ]+csrr[         ]+a0,hidelegh
> +[      ]+[0-9a-f]+:[   ]+61359073[     ]+csrw[         ]+hidelegh,a1
> +[      ]+[0-9a-f]+:[   ]+61802573[     ]+csrr[         ]+a0,hvienh
> +[      ]+[0-9a-f]+:[   ]+61859073[     ]+csrw[         ]+hvienh,a1
> +[      ]+[0-9a-f]+:[   ]+65502573[     ]+csrr[         ]+a0,hviph
> +[      ]+[0-9a-f]+:[   ]+65559073[     ]+csrw[         ]+hviph,a1
> +[      ]+[0-9a-f]+:[   ]+65602573[     ]+csrr[         ]+a0,hviprio1h
> +[      ]+[0-9a-f]+:[   ]+65659073[     ]+csrw[         ]+hviprio1h,a1
> +[      ]+[0-9a-f]+:[   ]+65702573[     ]+csrr[         ]+a0,hviprio2h
> +[      ]+[0-9a-f]+:[   ]+65759073[     ]+csrw[         ]+hviprio2h,a1
> +[      ]+[0-9a-f]+:[   ]+21402573[     ]+csrr[         ]+a0,vsieh
> +[      ]+[0-9a-f]+:[   ]+21459073[     ]+csrw[         ]+vsieh,a1
> +[      ]+[0-9a-f]+:[   ]+25402573[     ]+csrr[         ]+a0,vsiph
> +[      ]+[0-9a-f]+:[   ]+25459073[     ]+csrw[         ]+vsiph,a1
>  [      ]+[0-9a-f]+:[   ]+da002573[     ]+csrr[         ]+a0,scountovf
>  [      ]+[0-9a-f]+:[   ]+da059073[     ]+csrw[         ]+scountovf,a1
>  [      ]+[0-9a-f]+:[   ]+72302573[     ]+csrr[         ]+a0,mhpmevent3h
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas/riscv/csr-version-1p11.l
> index 0766c2263ec..81ca86ca7bc 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
> @@ -409,6 +409,39 @@
>  .*Warning: invalid CSR `vsip', needs `h' extension
>  .*Warning: invalid CSR `vsatp', needs `h' extension
>  .*Warning: invalid CSR `vsatp', needs `h' extension
> +.*Warning: invalid CSR `miselect', needs `smaia' extension
> +.*Warning: invalid CSR `miselect', needs `smaia' extension
> +.*Warning: invalid CSR `mireg', needs `smaia' extension
> +.*Warning: invalid CSR `mireg', needs `smaia' extension
> +.*Warning: invalid CSR `mtopei', needs `smaia' extension
> +.*Warning: invalid CSR `mtopei', needs `smaia' extension
> +.*Warning: invalid CSR `mtopi', needs `smaia' extension
> +.*Warning: invalid CSR `mtopi', needs `smaia' extension
> +.*Warning: read-only CSR is written `csrw mtopi,a1'
> +.*Warning: invalid CSR `mvien', needs `smaia' extension
> +.*Warning: invalid CSR `mvien', needs `smaia' extension
> +.*Warning: invalid CSR `mvip', needs `smaia' extension
> +.*Warning: invalid CSR `mvip', needs `smaia' extension
> +.*Warning: invalid CSR `midelegh', needs rv32i extension
> +.*Warning: invalid CSR `midelegh', needs `smaia' extension
> +.*Warning: invalid CSR `midelegh', needs rv32i extension
> +.*Warning: invalid CSR `midelegh', needs `smaia' extension
> +.*Warning: invalid CSR `mieh', needs rv32i extension
> +.*Warning: invalid CSR `mieh', needs `smaia' extension
> +.*Warning: invalid CSR `mieh', needs rv32i extension
> +.*Warning: invalid CSR `mieh', needs `smaia' extension
> +.*Warning: invalid CSR `mvienh', needs rv32i extension
> +.*Warning: invalid CSR `mvienh', needs `smaia' extension
> +.*Warning: invalid CSR `mvienh', needs rv32i extension
> +.*Warning: invalid CSR `mvienh', needs `smaia' extension
> +.*Warning: invalid CSR `mviph', needs rv32i extension
> +.*Warning: invalid CSR `mviph', needs `smaia' extension
> +.*Warning: invalid CSR `mviph', needs rv32i extension
> +.*Warning: invalid CSR `mviph', needs `smaia' extension
> +.*Warning: invalid CSR `miph', needs rv32i extension
> +.*Warning: invalid CSR `miph', needs `smaia' extension
> +.*Warning: invalid CSR `miph', needs rv32i extension
> +.*Warning: invalid CSR `miph', needs `smaia' extension
>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>  .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
> @@ -481,6 +514,98 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
> +.*Warning: invalid CSR `siselect', needs `ssaia' extension
> +.*Warning: invalid CSR `siselect', needs `ssaia' extension
> +.*Warning: invalid CSR `sireg', needs `ssaia' extension
> +.*Warning: invalid CSR `sireg', needs `ssaia' extension
> +.*Warning: invalid CSR `stopei', needs `ssaia' extension
> +.*Warning: invalid CSR `stopei', needs `ssaia' extension
> +.*Warning: invalid CSR `stopi', needs `ssaia' extension
> +.*Warning: invalid CSR `stopi', needs `ssaia' extension
> +.*Warning: read-only CSR is written `csrw stopi,a1'
> +.*Warning: invalid CSR `sieh', needs rv32i extension
> +.*Warning: invalid CSR `sieh', needs `ssaia' extension
> +.*Warning: invalid CSR `sieh', needs rv32i extension
> +.*Warning: invalid CSR `sieh', needs `ssaia' extension
> +.*Warning: invalid CSR `siph', needs rv32i extension
> +.*Warning: invalid CSR `siph', needs `ssaia' extension
> +.*Warning: invalid CSR `siph', needs rv32i extension
> +.*Warning: invalid CSR `siph', needs `ssaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `ssaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `ssaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `ssaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiselect', needs `h' extension
> +.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiselect', needs `h' extension
> +.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
> +.*Warning: invalid CSR `vsireg', needs `h' extension
> +.*Warning: invalid CSR `vsireg', needs `ssaia' extension
> +.*Warning: invalid CSR `vsireg', needs `h' extension
> +.*Warning: invalid CSR `vsireg', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopei', needs `h' extension
> +.*Warning: invalid CSR `vstopei', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopei', needs `h' extension
> +.*Warning: invalid CSR `vstopei', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopi', needs `h' extension
> +.*Warning: invalid CSR `vstopi', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopi', needs `h' extension
> +.*Warning: invalid CSR `vstopi', needs `ssaia' extension
> +.*Warning: read-only CSR is written `csrw vstopi,a1'
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `ssaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `ssaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `ssaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
> +.*Warning: invalid CSR `vsieh', needs rv32i extension
> +.*Warning: invalid CSR `vsieh', needs `h' extension
> +.*Warning: invalid CSR `vsieh', needs `ssaia' extension
> +.*Warning: invalid CSR `vsieh', needs rv32i extension
> +.*Warning: invalid CSR `vsieh', needs `h' extension
> +.*Warning: invalid CSR `vsieh', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiph', needs rv32i extension
> +.*Warning: invalid CSR `vsiph', needs `h' extension
> +.*Warning: invalid CSR `vsiph', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiph', needs rv32i extension
> +.*Warning: invalid CSR `vsiph', needs `h' extension
> +.*Warning: invalid CSR `vsiph', needs `ssaia' extension
>  .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>  .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>  .*Warning: read-only CSR is written `csrw scountovf,a1'
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.d b/gas/testsuite/gas/riscv/csr-version-1p12.d
> index 728e647c552..612aac28076 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p12.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
> @@ -601,6 +601,28 @@ Disassembly of section .text:
>  [      ]+[0-9a-f]+:[   ]+24459073[     ]+csrw[         ]+vsip,a1
>  [      ]+[0-9a-f]+:[   ]+28002573[     ]+csrr[         ]+a0,vsatp
>  [      ]+[0-9a-f]+:[   ]+28059073[     ]+csrw[         ]+vsatp,a1
> +[      ]+[0-9a-f]+:[   ]+35002573[     ]+csrr[         ]+a0,miselect
> +[      ]+[0-9a-f]+:[   ]+35059073[     ]+csrw[         ]+miselect,a1
> +[      ]+[0-9a-f]+:[   ]+35102573[     ]+csrr[         ]+a0,mireg
> +[      ]+[0-9a-f]+:[   ]+35159073[     ]+csrw[         ]+mireg,a1
> +[      ]+[0-9a-f]+:[   ]+35c02573[     ]+csrr[         ]+a0,mtopei
> +[      ]+[0-9a-f]+:[   ]+35c59073[     ]+csrw[         ]+mtopei,a1
> +[      ]+[0-9a-f]+:[   ]+fb002573[     ]+csrr[         ]+a0,mtopi
> +[      ]+[0-9a-f]+:[   ]+fb059073[     ]+csrw[         ]+mtopi,a1
> +[      ]+[0-9a-f]+:[   ]+30802573[     ]+csrr[         ]+a0,mvien
> +[      ]+[0-9a-f]+:[   ]+30859073[     ]+csrw[         ]+mvien,a1
> +[      ]+[0-9a-f]+:[   ]+30902573[     ]+csrr[         ]+a0,mvip
> +[      ]+[0-9a-f]+:[   ]+30959073[     ]+csrw[         ]+mvip,a1
> +[      ]+[0-9a-f]+:[   ]+31302573[     ]+csrr[         ]+a0,midelegh
> +[      ]+[0-9a-f]+:[   ]+31359073[     ]+csrw[         ]+midelegh,a1
> +[      ]+[0-9a-f]+:[   ]+31402573[     ]+csrr[         ]+a0,mieh
> +[      ]+[0-9a-f]+:[   ]+31459073[     ]+csrw[         ]+mieh,a1
> +[      ]+[0-9a-f]+:[   ]+31802573[     ]+csrr[         ]+a0,mvienh
> +[      ]+[0-9a-f]+:[   ]+31859073[     ]+csrw[         ]+mvienh,a1
> +[      ]+[0-9a-f]+:[   ]+31902573[     ]+csrr[         ]+a0,mviph
> +[      ]+[0-9a-f]+:[   ]+31959073[     ]+csrw[         ]+mviph,a1
> +[      ]+[0-9a-f]+:[   ]+35402573[     ]+csrr[         ]+a0,miph
> +[      ]+[0-9a-f]+:[   ]+35459073[     ]+csrw[         ]+miph,a1
>  [      ]+[0-9a-f]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> @@ -641,6 +663,48 @@ Disassembly of section .text:
>  [      ]+[0-9a-f]+:[   ]+61e59073[     ]+csrw[         ]+hstateen2h,a1
>  [      ]+[0-9a-f]+:[   ]+61f02573[     ]+csrr[         ]+a0,hstateen3h
>  [      ]+[0-9a-f]+:[   ]+61f59073[     ]+csrw[         ]+hstateen3h,a1
> +[      ]+[0-9a-f]+:[   ]+15002573[     ]+csrr[         ]+a0,siselect
> +[      ]+[0-9a-f]+:[   ]+15059073[     ]+csrw[         ]+siselect,a1
> +[      ]+[0-9a-f]+:[   ]+15102573[     ]+csrr[         ]+a0,sireg
> +[      ]+[0-9a-f]+:[   ]+15159073[     ]+csrw[         ]+sireg,a1
> +[      ]+[0-9a-f]+:[   ]+15c02573[     ]+csrr[         ]+a0,stopei
> +[      ]+[0-9a-f]+:[   ]+15c59073[     ]+csrw[         ]+stopei,a1
> +[      ]+[0-9a-f]+:[   ]+db002573[     ]+csrr[         ]+a0,stopi
> +[      ]+[0-9a-f]+:[   ]+db059073[     ]+csrw[         ]+stopi,a1
> +[      ]+[0-9a-f]+:[   ]+11402573[     ]+csrr[         ]+a0,sieh
> +[      ]+[0-9a-f]+:[   ]+11459073[     ]+csrw[         ]+sieh,a1
> +[      ]+[0-9a-f]+:[   ]+15402573[     ]+csrr[         ]+a0,siph
> +[      ]+[0-9a-f]+:[   ]+15459073[     ]+csrw[         ]+siph,a1
> +[      ]+[0-9a-f]+:[   ]+60802573[     ]+csrr[         ]+a0,hvien
> +[      ]+[0-9a-f]+:[   ]+60859073[     ]+csrw[         ]+hvien,a1
> +[      ]+[0-9a-f]+:[   ]+60902573[     ]+csrr[         ]+a0,hvictl
> +[      ]+[0-9a-f]+:[   ]+60959073[     ]+csrw[         ]+hvictl,a1
> +[      ]+[0-9a-f]+:[   ]+64602573[     ]+csrr[         ]+a0,hviprio1
> +[      ]+[0-9a-f]+:[   ]+64659073[     ]+csrw[         ]+hviprio1,a1
> +[      ]+[0-9a-f]+:[   ]+64702573[     ]+csrr[         ]+a0,hviprio2
> +[      ]+[0-9a-f]+:[   ]+64759073[     ]+csrw[         ]+hviprio2,a1
> +[      ]+[0-9a-f]+:[   ]+25002573[     ]+csrr[         ]+a0,vsiselect
> +[      ]+[0-9a-f]+:[   ]+25059073[     ]+csrw[         ]+vsiselect,a1
> +[      ]+[0-9a-f]+:[   ]+25102573[     ]+csrr[         ]+a0,vsireg
> +[      ]+[0-9a-f]+:[   ]+25159073[     ]+csrw[         ]+vsireg,a1
> +[      ]+[0-9a-f]+:[   ]+25c02573[     ]+csrr[         ]+a0,vstopei
> +[      ]+[0-9a-f]+:[   ]+25c59073[     ]+csrw[         ]+vstopei,a1
> +[      ]+[0-9a-f]+:[   ]+eb002573[     ]+csrr[         ]+a0,vstopi
> +[      ]+[0-9a-f]+:[   ]+eb059073[     ]+csrw[         ]+vstopi,a1
> +[      ]+[0-9a-f]+:[   ]+61302573[     ]+csrr[         ]+a0,hidelegh
> +[      ]+[0-9a-f]+:[   ]+61359073[     ]+csrw[         ]+hidelegh,a1
> +[      ]+[0-9a-f]+:[   ]+61802573[     ]+csrr[         ]+a0,hvienh
> +[      ]+[0-9a-f]+:[   ]+61859073[     ]+csrw[         ]+hvienh,a1
> +[      ]+[0-9a-f]+:[   ]+65502573[     ]+csrr[         ]+a0,hviph
> +[      ]+[0-9a-f]+:[   ]+65559073[     ]+csrw[         ]+hviph,a1
> +[      ]+[0-9a-f]+:[   ]+65602573[     ]+csrr[         ]+a0,hviprio1h
> +[      ]+[0-9a-f]+:[   ]+65659073[     ]+csrw[         ]+hviprio1h,a1
> +[      ]+[0-9a-f]+:[   ]+65702573[     ]+csrr[         ]+a0,hviprio2h
> +[      ]+[0-9a-f]+:[   ]+65759073[     ]+csrw[         ]+hviprio2h,a1
> +[      ]+[0-9a-f]+:[   ]+21402573[     ]+csrr[         ]+a0,vsieh
> +[      ]+[0-9a-f]+:[   ]+21459073[     ]+csrw[         ]+vsieh,a1
> +[      ]+[0-9a-f]+:[   ]+25402573[     ]+csrr[         ]+a0,vsiph
> +[      ]+[0-9a-f]+:[   ]+25459073[     ]+csrw[         ]+vsiph,a1
>  [      ]+[0-9a-f]+:[   ]+da002573[     ]+csrr[         ]+a0,scountovf
>  [      ]+[0-9a-f]+:[   ]+da059073[     ]+csrw[         ]+scountovf,a1
>  [      ]+[0-9a-f]+:[   ]+72302573[     ]+csrr[         ]+a0,mhpmevent3h
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas/riscv/csr-version-1p12.l
> index c13efcc6681..1c0bb4ef2d8 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
> @@ -271,6 +271,39 @@
>  .*Warning: invalid CSR `vsip', needs `h' extension
>  .*Warning: invalid CSR `vsatp', needs `h' extension
>  .*Warning: invalid CSR `vsatp', needs `h' extension
> +.*Warning: invalid CSR `miselect', needs `smaia' extension
> +.*Warning: invalid CSR `miselect', needs `smaia' extension
> +.*Warning: invalid CSR `mireg', needs `smaia' extension
> +.*Warning: invalid CSR `mireg', needs `smaia' extension
> +.*Warning: invalid CSR `mtopei', needs `smaia' extension
> +.*Warning: invalid CSR `mtopei', needs `smaia' extension
> +.*Warning: invalid CSR `mtopi', needs `smaia' extension
> +.*Warning: invalid CSR `mtopi', needs `smaia' extension
> +.*Warning: read-only CSR is written `csrw mtopi,a1'
> +.*Warning: invalid CSR `mvien', needs `smaia' extension
> +.*Warning: invalid CSR `mvien', needs `smaia' extension
> +.*Warning: invalid CSR `mvip', needs `smaia' extension
> +.*Warning: invalid CSR `mvip', needs `smaia' extension
> +.*Warning: invalid CSR `midelegh', needs rv32i extension
> +.*Warning: invalid CSR `midelegh', needs `smaia' extension
> +.*Warning: invalid CSR `midelegh', needs rv32i extension
> +.*Warning: invalid CSR `midelegh', needs `smaia' extension
> +.*Warning: invalid CSR `mieh', needs rv32i extension
> +.*Warning: invalid CSR `mieh', needs `smaia' extension
> +.*Warning: invalid CSR `mieh', needs rv32i extension
> +.*Warning: invalid CSR `mieh', needs `smaia' extension
> +.*Warning: invalid CSR `mvienh', needs rv32i extension
> +.*Warning: invalid CSR `mvienh', needs `smaia' extension
> +.*Warning: invalid CSR `mvienh', needs rv32i extension
> +.*Warning: invalid CSR `mvienh', needs `smaia' extension
> +.*Warning: invalid CSR `mviph', needs rv32i extension
> +.*Warning: invalid CSR `mviph', needs `smaia' extension
> +.*Warning: invalid CSR `mviph', needs rv32i extension
> +.*Warning: invalid CSR `mviph', needs `smaia' extension
> +.*Warning: invalid CSR `miph', needs rv32i extension
> +.*Warning: invalid CSR `miph', needs `smaia' extension
> +.*Warning: invalid CSR `miph', needs rv32i extension
> +.*Warning: invalid CSR `miph', needs `smaia' extension
>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>  .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
> @@ -343,6 +376,98 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
> +.*Warning: invalid CSR `siselect', needs `ssaia' extension
> +.*Warning: invalid CSR `siselect', needs `ssaia' extension
> +.*Warning: invalid CSR `sireg', needs `ssaia' extension
> +.*Warning: invalid CSR `sireg', needs `ssaia' extension
> +.*Warning: invalid CSR `stopei', needs `ssaia' extension
> +.*Warning: invalid CSR `stopei', needs `ssaia' extension
> +.*Warning: invalid CSR `stopi', needs `ssaia' extension
> +.*Warning: invalid CSR `stopi', needs `ssaia' extension
> +.*Warning: read-only CSR is written `csrw stopi,a1'
> +.*Warning: invalid CSR `sieh', needs rv32i extension
> +.*Warning: invalid CSR `sieh', needs `ssaia' extension
> +.*Warning: invalid CSR `sieh', needs rv32i extension
> +.*Warning: invalid CSR `sieh', needs `ssaia' extension
> +.*Warning: invalid CSR `siph', needs rv32i extension
> +.*Warning: invalid CSR `siph', needs `ssaia' extension
> +.*Warning: invalid CSR `siph', needs rv32i extension
> +.*Warning: invalid CSR `siph', needs `ssaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `ssaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `ssaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `ssaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiselect', needs `h' extension
> +.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiselect', needs `h' extension
> +.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
> +.*Warning: invalid CSR `vsireg', needs `h' extension
> +.*Warning: invalid CSR `vsireg', needs `ssaia' extension
> +.*Warning: invalid CSR `vsireg', needs `h' extension
> +.*Warning: invalid CSR `vsireg', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopei', needs `h' extension
> +.*Warning: invalid CSR `vstopei', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopei', needs `h' extension
> +.*Warning: invalid CSR `vstopei', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopi', needs `h' extension
> +.*Warning: invalid CSR `vstopi', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopi', needs `h' extension
> +.*Warning: invalid CSR `vstopi', needs `ssaia' extension
> +.*Warning: read-only CSR is written `csrw vstopi,a1'
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `ssaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `ssaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `ssaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
> +.*Warning: invalid CSR `vsieh', needs rv32i extension
> +.*Warning: invalid CSR `vsieh', needs `h' extension
> +.*Warning: invalid CSR `vsieh', needs `ssaia' extension
> +.*Warning: invalid CSR `vsieh', needs rv32i extension
> +.*Warning: invalid CSR `vsieh', needs `h' extension
> +.*Warning: invalid CSR `vsieh', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiph', needs rv32i extension
> +.*Warning: invalid CSR `vsiph', needs `h' extension
> +.*Warning: invalid CSR `vsiph', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiph', needs rv32i extension
> +.*Warning: invalid CSR `vsiph', needs `h' extension
> +.*Warning: invalid CSR `vsiph', needs `ssaia' extension
>  .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>  .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>  .*Warning: read-only CSR is written `csrw scountovf,a1'
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.d b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> index a34b99f4632..0fe849c269c 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> @@ -601,6 +601,28 @@ Disassembly of section .text:
>  [      ]+[0-9a-f]+:[   ]+24459073[     ]+csrw[         ]+vsip,a1
>  [      ]+[0-9a-f]+:[   ]+28002573[     ]+csrr[         ]+a0,vsatp
>  [      ]+[0-9a-f]+:[   ]+28059073[     ]+csrw[         ]+vsatp,a1
> +[      ]+[0-9a-f]+:[   ]+35002573[     ]+csrr[         ]+a0,miselect
> +[      ]+[0-9a-f]+:[   ]+35059073[     ]+csrw[         ]+miselect,a1
> +[      ]+[0-9a-f]+:[   ]+35102573[     ]+csrr[         ]+a0,mireg
> +[      ]+[0-9a-f]+:[   ]+35159073[     ]+csrw[         ]+mireg,a1
> +[      ]+[0-9a-f]+:[   ]+35c02573[     ]+csrr[         ]+a0,mtopei
> +[      ]+[0-9a-f]+:[   ]+35c59073[     ]+csrw[         ]+mtopei,a1
> +[      ]+[0-9a-f]+:[   ]+fb002573[     ]+csrr[         ]+a0,mtopi
> +[      ]+[0-9a-f]+:[   ]+fb059073[     ]+csrw[         ]+mtopi,a1
> +[      ]+[0-9a-f]+:[   ]+30802573[     ]+csrr[         ]+a0,mvien
> +[      ]+[0-9a-f]+:[   ]+30859073[     ]+csrw[         ]+mvien,a1
> +[      ]+[0-9a-f]+:[   ]+30902573[     ]+csrr[         ]+a0,mvip
> +[      ]+[0-9a-f]+:[   ]+30959073[     ]+csrw[         ]+mvip,a1
> +[      ]+[0-9a-f]+:[   ]+31302573[     ]+csrr[         ]+a0,midelegh
> +[      ]+[0-9a-f]+:[   ]+31359073[     ]+csrw[         ]+midelegh,a1
> +[      ]+[0-9a-f]+:[   ]+31402573[     ]+csrr[         ]+a0,mieh
> +[      ]+[0-9a-f]+:[   ]+31459073[     ]+csrw[         ]+mieh,a1
> +[      ]+[0-9a-f]+:[   ]+31802573[     ]+csrr[         ]+a0,mvienh
> +[      ]+[0-9a-f]+:[   ]+31859073[     ]+csrw[         ]+mvienh,a1
> +[      ]+[0-9a-f]+:[   ]+31902573[     ]+csrr[         ]+a0,mviph
> +[      ]+[0-9a-f]+:[   ]+31959073[     ]+csrw[         ]+mviph,a1
> +[      ]+[0-9a-f]+:[   ]+35402573[     ]+csrr[         ]+a0,miph
> +[      ]+[0-9a-f]+:[   ]+35459073[     ]+csrw[         ]+miph,a1
>  [      ]+[0-9a-f]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> @@ -641,6 +663,48 @@ Disassembly of section .text:
>  [      ]+[0-9a-f]+:[   ]+61e59073[     ]+csrw[         ]+hstateen2h,a1
>  [      ]+[0-9a-f]+:[   ]+61f02573[     ]+csrr[         ]+a0,hstateen3h
>  [      ]+[0-9a-f]+:[   ]+61f59073[     ]+csrw[         ]+hstateen3h,a1
> +[      ]+[0-9a-f]+:[   ]+15002573[     ]+csrr[         ]+a0,siselect
> +[      ]+[0-9a-f]+:[   ]+15059073[     ]+csrw[         ]+siselect,a1
> +[      ]+[0-9a-f]+:[   ]+15102573[     ]+csrr[         ]+a0,sireg
> +[      ]+[0-9a-f]+:[   ]+15159073[     ]+csrw[         ]+sireg,a1
> +[      ]+[0-9a-f]+:[   ]+15c02573[     ]+csrr[         ]+a0,stopei
> +[      ]+[0-9a-f]+:[   ]+15c59073[     ]+csrw[         ]+stopei,a1
> +[      ]+[0-9a-f]+:[   ]+db002573[     ]+csrr[         ]+a0,stopi
> +[      ]+[0-9a-f]+:[   ]+db059073[     ]+csrw[         ]+stopi,a1
> +[      ]+[0-9a-f]+:[   ]+11402573[     ]+csrr[         ]+a0,sieh
> +[      ]+[0-9a-f]+:[   ]+11459073[     ]+csrw[         ]+sieh,a1
> +[      ]+[0-9a-f]+:[   ]+15402573[     ]+csrr[         ]+a0,siph
> +[      ]+[0-9a-f]+:[   ]+15459073[     ]+csrw[         ]+siph,a1
> +[      ]+[0-9a-f]+:[   ]+60802573[     ]+csrr[         ]+a0,hvien
> +[      ]+[0-9a-f]+:[   ]+60859073[     ]+csrw[         ]+hvien,a1
> +[      ]+[0-9a-f]+:[   ]+60902573[     ]+csrr[         ]+a0,hvictl
> +[      ]+[0-9a-f]+:[   ]+60959073[     ]+csrw[         ]+hvictl,a1
> +[      ]+[0-9a-f]+:[   ]+64602573[     ]+csrr[         ]+a0,hviprio1
> +[      ]+[0-9a-f]+:[   ]+64659073[     ]+csrw[         ]+hviprio1,a1
> +[      ]+[0-9a-f]+:[   ]+64702573[     ]+csrr[         ]+a0,hviprio2
> +[      ]+[0-9a-f]+:[   ]+64759073[     ]+csrw[         ]+hviprio2,a1
> +[      ]+[0-9a-f]+:[   ]+25002573[     ]+csrr[         ]+a0,vsiselect
> +[      ]+[0-9a-f]+:[   ]+25059073[     ]+csrw[         ]+vsiselect,a1
> +[      ]+[0-9a-f]+:[   ]+25102573[     ]+csrr[         ]+a0,vsireg
> +[      ]+[0-9a-f]+:[   ]+25159073[     ]+csrw[         ]+vsireg,a1
> +[      ]+[0-9a-f]+:[   ]+25c02573[     ]+csrr[         ]+a0,vstopei
> +[      ]+[0-9a-f]+:[   ]+25c59073[     ]+csrw[         ]+vstopei,a1
> +[      ]+[0-9a-f]+:[   ]+eb002573[     ]+csrr[         ]+a0,vstopi
> +[      ]+[0-9a-f]+:[   ]+eb059073[     ]+csrw[         ]+vstopi,a1
> +[      ]+[0-9a-f]+:[   ]+61302573[     ]+csrr[         ]+a0,hidelegh
> +[      ]+[0-9a-f]+:[   ]+61359073[     ]+csrw[         ]+hidelegh,a1
> +[      ]+[0-9a-f]+:[   ]+61802573[     ]+csrr[         ]+a0,hvienh
> +[      ]+[0-9a-f]+:[   ]+61859073[     ]+csrw[         ]+hvienh,a1
> +[      ]+[0-9a-f]+:[   ]+65502573[     ]+csrr[         ]+a0,hviph
> +[      ]+[0-9a-f]+:[   ]+65559073[     ]+csrw[         ]+hviph,a1
> +[      ]+[0-9a-f]+:[   ]+65602573[     ]+csrr[         ]+a0,hviprio1h
> +[      ]+[0-9a-f]+:[   ]+65659073[     ]+csrw[         ]+hviprio1h,a1
> +[      ]+[0-9a-f]+:[   ]+65702573[     ]+csrr[         ]+a0,hviprio2h
> +[      ]+[0-9a-f]+:[   ]+65759073[     ]+csrw[         ]+hviprio2h,a1
> +[      ]+[0-9a-f]+:[   ]+21402573[     ]+csrr[         ]+a0,vsieh
> +[      ]+[0-9a-f]+:[   ]+21459073[     ]+csrw[         ]+vsieh,a1
> +[      ]+[0-9a-f]+:[   ]+25402573[     ]+csrr[         ]+a0,vsiph
> +[      ]+[0-9a-f]+:[   ]+25459073[     ]+csrw[         ]+vsiph,a1
>  [      ]+[0-9a-f]+:[   ]+da002573[     ]+csrr[         ]+a0,scountovf
>  [      ]+[0-9a-f]+:[   ]+da059073[     ]+csrw[         ]+scountovf,a1
>  [      ]+[0-9a-f]+:[   ]+72302573[     ]+csrr[         ]+a0,mhpmevent3h
> diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.l b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> index bc35630abd0..c65d0b48e41 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> @@ -461,6 +461,39 @@
>  .*Warning: invalid CSR `vsip', needs `h' extension
>  .*Warning: invalid CSR `vsatp', needs `h' extension
>  .*Warning: invalid CSR `vsatp', needs `h' extension
> +.*Warning: invalid CSR `miselect', needs `smaia' extension
> +.*Warning: invalid CSR `miselect', needs `smaia' extension
> +.*Warning: invalid CSR `mireg', needs `smaia' extension
> +.*Warning: invalid CSR `mireg', needs `smaia' extension
> +.*Warning: invalid CSR `mtopei', needs `smaia' extension
> +.*Warning: invalid CSR `mtopei', needs `smaia' extension
> +.*Warning: invalid CSR `mtopi', needs `smaia' extension
> +.*Warning: invalid CSR `mtopi', needs `smaia' extension
> +.*Warning: read-only CSR is written `csrw mtopi,a1'
> +.*Warning: invalid CSR `mvien', needs `smaia' extension
> +.*Warning: invalid CSR `mvien', needs `smaia' extension
> +.*Warning: invalid CSR `mvip', needs `smaia' extension
> +.*Warning: invalid CSR `mvip', needs `smaia' extension
> +.*Warning: invalid CSR `midelegh', needs rv32i extension
> +.*Warning: invalid CSR `midelegh', needs `smaia' extension
> +.*Warning: invalid CSR `midelegh', needs rv32i extension
> +.*Warning: invalid CSR `midelegh', needs `smaia' extension
> +.*Warning: invalid CSR `mieh', needs rv32i extension
> +.*Warning: invalid CSR `mieh', needs `smaia' extension
> +.*Warning: invalid CSR `mieh', needs rv32i extension
> +.*Warning: invalid CSR `mieh', needs `smaia' extension
> +.*Warning: invalid CSR `mvienh', needs rv32i extension
> +.*Warning: invalid CSR `mvienh', needs `smaia' extension
> +.*Warning: invalid CSR `mvienh', needs rv32i extension
> +.*Warning: invalid CSR `mvienh', needs `smaia' extension
> +.*Warning: invalid CSR `mviph', needs rv32i extension
> +.*Warning: invalid CSR `mviph', needs `smaia' extension
> +.*Warning: invalid CSR `mviph', needs rv32i extension
> +.*Warning: invalid CSR `mviph', needs `smaia' extension
> +.*Warning: invalid CSR `miph', needs rv32i extension
> +.*Warning: invalid CSR `miph', needs `smaia' extension
> +.*Warning: invalid CSR `miph', needs rv32i extension
> +.*Warning: invalid CSR `miph', needs `smaia' extension
>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>  .*Warning: invalid CSR `mstateen0', needs `smstateen' extension
>  .*Warning: invalid CSR `mstateen1', needs `smstateen' extension
> @@ -533,6 +566,98 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
> +.*Warning: invalid CSR `siselect', needs `ssaia' extension
> +.*Warning: invalid CSR `siselect', needs `ssaia' extension
> +.*Warning: invalid CSR `sireg', needs `ssaia' extension
> +.*Warning: invalid CSR `sireg', needs `ssaia' extension
> +.*Warning: invalid CSR `stopei', needs `ssaia' extension
> +.*Warning: invalid CSR `stopei', needs `ssaia' extension
> +.*Warning: invalid CSR `stopi', needs `ssaia' extension
> +.*Warning: invalid CSR `stopi', needs `ssaia' extension
> +.*Warning: read-only CSR is written `csrw stopi,a1'
> +.*Warning: invalid CSR `sieh', needs rv32i extension
> +.*Warning: invalid CSR `sieh', needs `ssaia' extension
> +.*Warning: invalid CSR `sieh', needs rv32i extension
> +.*Warning: invalid CSR `sieh', needs `ssaia' extension
> +.*Warning: invalid CSR `siph', needs rv32i extension
> +.*Warning: invalid CSR `siph', needs `ssaia' extension
> +.*Warning: invalid CSR `siph', needs rv32i extension
> +.*Warning: invalid CSR `siph', needs `ssaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `ssaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `ssaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `ssaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiselect', needs `h' extension
> +.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiselect', needs `h' extension
> +.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
> +.*Warning: invalid CSR `vsireg', needs `h' extension
> +.*Warning: invalid CSR `vsireg', needs `ssaia' extension
> +.*Warning: invalid CSR `vsireg', needs `h' extension
> +.*Warning: invalid CSR `vsireg', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopei', needs `h' extension
> +.*Warning: invalid CSR `vstopei', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopei', needs `h' extension
> +.*Warning: invalid CSR `vstopei', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopi', needs `h' extension
> +.*Warning: invalid CSR `vstopi', needs `ssaia' extension
> +.*Warning: invalid CSR `vstopi', needs `h' extension
> +.*Warning: invalid CSR `vstopi', needs `ssaia' extension
> +.*Warning: read-only CSR is written `csrw vstopi,a1'
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `ssaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `ssaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `ssaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
> +.*Warning: invalid CSR `vsieh', needs rv32i extension
> +.*Warning: invalid CSR `vsieh', needs `h' extension
> +.*Warning: invalid CSR `vsieh', needs `ssaia' extension
> +.*Warning: invalid CSR `vsieh', needs rv32i extension
> +.*Warning: invalid CSR `vsieh', needs `h' extension
> +.*Warning: invalid CSR `vsieh', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiph', needs rv32i extension
> +.*Warning: invalid CSR `vsiph', needs `h' extension
> +.*Warning: invalid CSR `vsiph', needs `ssaia' extension
> +.*Warning: invalid CSR `vsiph', needs rv32i extension
> +.*Warning: invalid CSR `vsiph', needs `h' extension
> +.*Warning: invalid CSR `vsiph', needs `ssaia' extension
>  .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>  .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>  .*Warning: read-only CSR is written `csrw scountovf,a1'
> diff --git a/gas/testsuite/gas/riscv/csr.s b/gas/testsuite/gas/riscv/csr.s
> index 397fe0b9eb8..c7406ce34c2 100644
> --- a/gas/testsuite/gas/riscv/csr.s
> +++ b/gas/testsuite/gas/riscv/csr.s
> @@ -337,6 +337,19 @@
>         csr vsip
>         csr vsatp
>
> +       # Smaia
> +       csr miselect
> +       csr mireg
> +       csr mtopei
> +       csr mtopi
> +       csr mvien
> +       csr mvip
> +       csr midelegh
> +       csr mieh
> +       csr mvienh
> +       csr mviph
> +       csr miph
> +
>         # Smstateen/Ssstateen extensions
>         csr mstateen0
>         csr mstateen1
> @@ -359,6 +372,29 @@
>         csr hstateen2h
>         csr hstateen3h
>
> +       # Ssaia
> +       csr siselect
> +       csr sireg
> +       csr stopei
> +       csr stopi
> +       csr sieh
> +       csr siph
> +       csr hvien
> +       csr hvictl
> +       csr hviprio1
> +       csr hviprio2
> +       csr vsiselect
> +       csr vsireg
> +       csr vstopei
> +       csr vstopi
> +       csr hidelegh
> +       csr hvienh
> +       csr hviph
> +       csr hviprio1h
> +       csr hviprio2h
> +       csr vsieh
> +       csr vsiph
> +
>         # Sscofpmf extension
>         csr scountovf
>         csr mhpmevent3h
> diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
> index cdc0919dfe2..06e3df0f5a6 100644
> --- a/include/opcode/riscv-opc.h
> +++ b/include/opcode/riscv-opc.h
> @@ -2661,6 +2661,18 @@
>  #define CSR_UIP 0x44
>  #define CSR_SEDELEG 0x102
>  #define CSR_SIDELEG 0x103
> +/* Smaia extension */
> +#define CSR_MISELECT 0x350
> +#define CSR_MIREG    0x351
> +#define CSR_MTOPEI   0x35c
> +#define CSR_MTOPI    0xfb0
> +#define CSR_MVIEN    0x308
> +#define CSR_MVIP     0x309
> +#define CSR_MIDELEGH 0x313
> +#define CSR_MIEH     0x314
> +#define CSR_MVIENH   0x318
> +#define CSR_MVIPH    0x319
> +#define CSR_MIPH     0x354
>  /* Smstateen extension */
>  #define CSR_MSTATEEN0 0x30c
>  #define CSR_MSTATEEN1 0x30d
> @@ -2682,6 +2694,28 @@
>  #define CSR_HSTATEEN1H 0x61d
>  #define CSR_HSTATEEN2H 0x61e
>  #define CSR_HSTATEEN3H 0x61f
> +/* Ssaia extension */
> +#define CSR_SISELECT 0x150
> +#define CSR_SIREG    0x151
> +#define CSR_STOPEI   0x15c
> +#define CSR_STOPI    0xdb0
> +#define CSR_SIEH     0x114
> +#define CSR_SIPH     0x154
> +#define CSR_HVIEN     0x608
> +#define CSR_HVICTL    0x609
> +#define CSR_HVIPRIO1  0x646
> +#define CSR_HVIPRIO2  0x647
> +#define CSR_VSISELECT 0x250
> +#define CSR_VSIREG    0x251
> +#define CSR_VSTOPEI   0x25c
> +#define CSR_VSTOPI    0xeb0
> +#define CSR_HIDELEGH  0x613
> +#define CSR_HVIENH    0x618
> +#define CSR_HVIPH     0x655
> +#define CSR_HVIPRIO1H 0x656
> +#define CSR_HVIPRIO2H 0x657
> +#define CSR_VSIEH     0x214
> +#define CSR_VSIPH     0x254
>  /* Sscofpmf extension */
>  #define CSR_SCOUNTOVF 0xda0
>  #define CSR_MHPMEVENT3H 0x723
> @@ -3504,6 +3538,18 @@ DECLARE_CSR(vscause, CSR_VSCAUSE, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_C
>  DECLARE_CSR(vstval, CSR_VSTVAL, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(vsip, CSR_VSIP, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(vsatp, CSR_VSATP, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +/* Smaia extension */
> +DECLARE_CSR(miselect, CSR_MISELECT, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(mireg, CSR_MIREG, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(mtopei, CSR_MTOPEI, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(mtopi, CSR_MTOPI, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(mvien, CSR_MVIEN, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(mvip, CSR_MVIP, CSR_CLASS_SMAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(midelegh, CSR_MIDELEGH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(mieh, CSR_MIEH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(mvienh, CSR_MVIENH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(mviph, CSR_MVIPH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(miph, CSR_MIPH, CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  /* Smstateen/Ssstateen extensions.  */
>  DECLARE_CSR(mstateen0, CSR_MSTATEEN0, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(mstateen1, CSR_MSTATEEN1, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> @@ -3525,6 +3571,28 @@ DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_
>  DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +/* Ssaia extension */
> +DECLARE_CSR(siselect, CSR_SISELECT, CSR_CLASS_SSAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(sireg, CSR_SIREG, CSR_CLASS_SSAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(stopei, CSR_STOPEI, CSR_CLASS_SSAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(stopi, CSR_STOPI, CSR_CLASS_SSAIA, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(sieh, CSR_SIEH, CSR_CLASS_SSAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(siph, CSR_SIPH, CSR_CLASS_SSAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(vsiselect, CSR_VSISELECT, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(vsireg, CSR_VSIREG, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(vstopei, CSR_VSTOPEI, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(vstopi, CSR_VSTOPI, CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(vsieh, CSR_VSIEH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(vsiph, CSR_VSIPH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  /* Sscofpmf extension */
>  DECLARE_CSR(scountovf, CSR_SCOUNTOVF, CSR_CLASS_SSCOFPMF, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(mhpmevent3h, CSR_MHPMEVENT3H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> --
> 2.38.1
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-11-25  3:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-22 11:09 [PATCH v3] riscv: Add AIA extension support (Smaia, Ssaia) Christoph Muellner
2022-11-25  3:04 ` Nelson Chu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).