riscv: Add AIA extension support (Smaia, Ssaia)

Message ID 20221118003212.3628771-1-christoph.muellner@vrull.eu
State Accepted
Headers
Series riscv: Add AIA extension support (Smaia, Ssaia) |

Checks

Context Check Description
snail/binutils-gdb-check success Github commit url

Commit Message

Christoph Müllner Nov. 18, 2022, 12:32 a.m. UTC
  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 marcro.
	(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_HVIEN): Likewise.
	(CSR_HVICTL): Likewise.
	(CSR_HVIPRIO1): Likewise.
	(CSR_HVIPRIO2): Likewise.
	(CSR_HIDELEGH): Likewise.
	(CSR_HVIENH): Likewise.
	(CSR_HVIPH): Likewise.
	(CSR_HVIPRIO1H): Likewise.
	(CSR_HVIPRIO2H): Likewise.
	(CSR_SISELECT): Likewise.
	(CSR_SIREG): Likewise.
	(CSR_STOPEI): Likewise.
	(CSR_STOPI): Likewise.
	(CSR_SIEH): Likewise.
	(CSR_SIPH): Likewise.
	(CSR_VSISELECT): Likewise.
	(CSR_VSIREG): Likewise.
	(CSR_VSTOPEI): Likewise.
	(CSR_VSTOPI): Likewise.
	(CSR_VSIEH): Likewise.
	(CSR_VSIPH): Likewise.
	(DECLARE_CSR): Add CSRs for Smaia and Ssaia.

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                           |   2 +
 gas/config/tc-riscv.c                       |  28 +++++
 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, 958 insertions(+)
  

Comments

Tsukasa OI Nov. 18, 2022, 5:07 a.m. UTC | #1
LGTM except it misses riscv_implicit_subsets.  I think all privileged
extensions with either:
*   New CSRs
*   New CSR bits
*   Dependency with use of CSRs
will be required to add 'Zicsr' to its implication.

Quick Background: The privileged architecture itself depends on 'Zicsr'
but there's no direct way to detect the privileged architecture itself).

The patch attached will make this commit complete.

Thanks,
Tsukasa

On 2022/11/18 9:32, Christoph Muellner 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 marcro.
> 	(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_HVIEN): Likewise.
> 	(CSR_HVICTL): Likewise.
> 	(CSR_HVIPRIO1): Likewise.
> 	(CSR_HVIPRIO2): Likewise.
> 	(CSR_HIDELEGH): Likewise.
> 	(CSR_HVIENH): Likewise.
> 	(CSR_HVIPH): Likewise.
> 	(CSR_HVIPRIO1H): Likewise.
> 	(CSR_HVIPRIO2H): Likewise.
> 	(CSR_SISELECT): Likewise.
> 	(CSR_SIREG): Likewise.
> 	(CSR_STOPEI): Likewise.
> 	(CSR_STOPI): Likewise.
> 	(CSR_SIEH): Likewise.
> 	(CSR_SIPH): Likewise.
> 	(CSR_VSISELECT): Likewise.
> 	(CSR_VSIREG): Likewise.
> 	(CSR_VSTOPEI): Likewise.
> 	(CSR_VSTOPI): Likewise.
> 	(CSR_VSIEH): Likewise.
> 	(CSR_VSIPH): Likewise.
> 	(DECLARE_CSR): Add CSRs for Smaia and Ssaia.
> 
> 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                           |   2 +
>  gas/config/tc-riscv.c                       |  28 +++++
>  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, 958 insertions(+)
> 
> diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
> index cfec9a6996c..dd75817b1bd 100644
> --- a/bfd/elfxx-riscv.c
> +++ b/bfd/elfxx-riscv.c
> @@ -1216,8 +1216,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 },
>    {"sstc",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
>    {"svinval",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> index 2dc92ecd3c3..78aa15400f8 100644
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -68,10 +68,18 @@ 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_AND_H,	/* Smaia with H */
> +  CSR_CLASS_SMAIA_32,		/* Smaia, rv32 only */
> +  CSR_CLASS_SMAIA_AND_H_32,	/* Smaia with H, rv32 only */
>    CSR_CLASS_SMSTATEEN,		/* Smstateen only */
>    CSR_CLASS_SMSTATEEN_AND_H,	/* Smstateen only (with H) */
>    CSR_CLASS_SMSTATEEN_32,	/* Smstateen RV32 only */
>    CSR_CLASS_SMSTATEEN_AND_H_32,	/* Smstateen RV32 only (with H) */
> +  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_SSCOFPMF,		/* Sscofpmf only */
>    CSR_CLASS_SSCOFPMF_32,	/* Sscofpmf RV32 only */
>    CSR_CLASS_SSTC,		/* Sstc only */
> @@ -1028,6 +1036,16 @@ riscv_csr_address (const char *csr_name,
>      case CSR_CLASS_V:
>        extension = "zve32x";
>        break;
> +    case CSR_CLASS_SMAIA:
> +    case CSR_CLASS_SMAIA_AND_H:
> +    case CSR_CLASS_SMAIA_32:
> +    case CSR_CLASS_SMAIA_AND_H_32:
> +      is_rv32_only = (csr_class == CSR_CLASS_SMAIA_32
> +		      || csr_class == CSR_CLASS_SMAIA_AND_H_32);
> +      is_h_required = (csr_class == CSR_CLASS_SMAIA_AND_H
> +		       || csr_class == CSR_CLASS_SMAIA_AND_H_32);
> +      extension = "smaia";
> +      break;
>      case CSR_CLASS_SMSTATEEN:
>      case CSR_CLASS_SMSTATEEN_AND_H:
>      case CSR_CLASS_SMSTATEEN_32:
> @@ -1038,6 +1056,16 @@ riscv_csr_address (const char *csr_name,
>  		      || csr_class == CSR_CLASS_SMSTATEEN_AND_H_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_SSCOFPMF_32:
>        is_rv32_only = true;
>        /* Fall through.  */
> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> index b4b3806a085..dd238cf54a9 100644
> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> @@ -313,6 +313,26 @@ 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: 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: 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: 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 +353,18 @@ 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: 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: 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..38b1e53dd6c 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,27 @@ _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
> +	.cfi_offset hvien, 6176
> +	.cfi_offset hvictl, 6180
> +	.cfi_offset hviprio1, 6424
> +	.cfi_offset hviprio2, 6428
> +	.cfi_offset hidelegh, 6220
> +	.cfi_offset hvienh, 6240
> +	.cfi_offset hviph, 6484
> +	.cfi_offset hviprio1h, 6488
> +	.cfi_offset hviprio2h, 6492
>  	# Smstateen extension
>  	.cfi_offset mstateen0, 3120
>  	.cfi_offset mstateen1, 3124
> @@ -328,6 +351,19 @@ _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 vsiselect, 2368
> +	.cfi_offset vsireg, 2372
> +	.cfi_offset vstopei, 2416
> +	.cfi_offset vstopi, 15040
> +	.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..879c7e8a97d 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p10.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
> @@ -601,6 +601,46 @@ 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]+:[ 	]+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]+:[ 	]+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]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
>  [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
>  [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
> @@ -641,6 +681,30 @@ 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]+:[ 	]+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]+:[ 	]+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 999e9af1520..44499fa4dbe 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
> @@ -411,6 +411,85 @@
>  .*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 `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', 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 +562,52 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..70397194465 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p11.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
> @@ -601,6 +601,46 @@ 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]+:[ 	]+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]+:[ 	]+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]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
>  [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
>  [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
> @@ -641,6 +681,30 @@ 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]+:[ 	]+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]+:[ 	]+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 a099e4ecc93..09a106806d2 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
> @@ -409,6 +409,85 @@
>  .*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 `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', 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 +560,52 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..142f60c216c 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p12.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
> @@ -601,6 +601,46 @@ 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]+:[ 	]+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]+:[ 	]+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]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
>  [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
>  [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
> @@ -641,6 +681,30 @@ 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]+:[ 	]+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]+:[ 	]+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 cf8f2e25634..7b138244ee1 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
> @@ -271,6 +271,85 @@
>  .*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 `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', 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 +422,52 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..fa843727e80 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> @@ -601,6 +601,46 @@ 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]+:[ 	]+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]+:[ 	]+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]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
>  [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
>  [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
> @@ -641,6 +681,30 @@ 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]+:[ 	]+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]+:[ 	]+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 5f298c1dda9..e63719ec066 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> @@ -461,6 +461,85 @@
>  .*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 `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', 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 +612,52 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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 128aeb83a04..21939b20a6d 100644
> --- a/gas/testsuite/gas/riscv/csr.s
> +++ b/gas/testsuite/gas/riscv/csr.s
> @@ -337,6 +337,28 @@
>  	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
> +	csr hvien
> +	csr hvictl
> +	csr hviprio1
> +	csr hviprio2
> +	csr hidelegh
> +	csr hvienh
> +	csr hviph
> +	csr hviprio1h
> +	csr hviprio2h
> +
>  	# Smstateen extension
>  	csr mstateen0
>  	csr mstateen1
> @@ -359,6 +381,20 @@
>  	csr hstateen2h
>  	csr hstateen3h
>  
> +	# Ssaia
> +	csr siselect
> +	csr sireg
> +	csr stopei
> +	csr stopi
> +	csr sieh
> +	csr siph
> +	csr vsiselect
> +	csr vsireg
> +	csr vstopei
> +	csr vstopi
> +	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 f36b06dcd6b..8beed0b1b42 100644
> --- a/include/opcode/riscv-opc.h
> +++ b/include/opcode/riscv-opc.h
> @@ -2661,6 +2661,27 @@
>  #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
> +#define CSR_HVIEN     0x608
> +#define CSR_HVICTL    0x609
> +#define CSR_HVIPRIO1  0x646
> +#define CSR_HVIPRIO2  0x647
> +#define CSR_HIDELEGH  0x613
> +#define CSR_HVIENH    0x618
> +#define CSR_HVIPH     0x655
> +#define CSR_HVIPRIO1H 0x656
> +#define CSR_HVIPRIO2H 0x657
>  /* Smstateen extension */
>  #define CSR_MSTATEEN0 0x30c
>  #define CSR_MSTATEEN1 0x30d
> @@ -2682,6 +2703,19 @@
>  #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_VSISELECT 0x250
> +#define CSR_VSIREG    0x251
> +#define CSR_VSTOPEI   0x25c
> +#define CSR_VSTOPI    0xeb0
> +#define CSR_VSIEH     0x214
> +#define CSR_VSIPH     0x254
>  /* Sscofpmf extension */
>  #define CSR_SCOUNTOVF 0xda0
>  #define CSR_MHPMEVENT3H 0x723
> @@ -3504,6 +3538,27 @@ 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)
> +DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  /* Smstateen extension */
>  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 +3580,19 @@ DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_
>  DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H, CSR_CLASS_SMSTATEEN_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(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(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)
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index dd75817b1bd3..bd6473d33c26 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", "zicsr",		check_implicit_always},
   {"smepmp", "zicsr",		check_implicit_always},
   {"smstateen", "zicsr",	check_implicit_always},
+  {"ssaia", "zicsr",		check_implicit_always},
   {"sscofpmf", "zicsr",		check_implicit_always},
   {"sstc", "zicsr",		check_implicit_always},
   {NULL, NULL, NULL}
  
Nelson Chu Nov. 18, 2022, 8:12 a.m. UTC | #2
On Fri, Nov 18, 2022 at 8:32 AM 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 marcro.
>         (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_HVIEN): Likewise.
>         (CSR_HVICTL): Likewise.
>         (CSR_HVIPRIO1): Likewise.
>         (CSR_HVIPRIO2): Likewise.
>         (CSR_HIDELEGH): Likewise.
>         (CSR_HVIENH): Likewise.
>         (CSR_HVIPH): Likewise.
>         (CSR_HVIPRIO1H): Likewise.
>         (CSR_HVIPRIO2H): Likewise.
>         (CSR_SISELECT): Likewise.
>         (CSR_SIREG): Likewise.
>         (CSR_STOPEI): Likewise.
>         (CSR_STOPI): Likewise.
>         (CSR_SIEH): Likewise.
>         (CSR_SIPH): Likewise.
>         (CSR_VSISELECT): Likewise.
>         (CSR_VSIREG): Likewise.
>         (CSR_VSTOPEI): Likewise.
>         (CSR_VSTOPI): Likewise.
>         (CSR_VSIEH): Likewise.
>         (CSR_VSIPH): Likewise.
>         (DECLARE_CSR): Add CSRs for Smaia and Ssaia.
>
> 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                           |   2 +
>  gas/config/tc-riscv.c                       |  28 +++++
>  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, 958 insertions(+)
>
> diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
> index cfec9a6996c..dd75817b1bd 100644
> --- a/bfd/elfxx-riscv.c
> +++ b/bfd/elfxx-riscv.c
> @@ -1216,8 +1216,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 },
>    {"sstc",             ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"svinval",          ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> index 2dc92ecd3c3..78aa15400f8 100644
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -68,10 +68,18 @@ 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_AND_H,       /* Smaia with H */
> +  CSR_CLASS_SMAIA_32,          /* Smaia, rv32 only */
> +  CSR_CLASS_SMAIA_AND_H_32,    /* Smaia with H, rv32 only */
>    CSR_CLASS_SMSTATEEN,         /* Smstateen only */
>    CSR_CLASS_SMSTATEEN_AND_H,   /* Smstateen only (with H) */
>    CSR_CLASS_SMSTATEEN_32,      /* Smstateen RV32 only */
>    CSR_CLASS_SMSTATEEN_AND_H_32,        /* Smstateen RV32 only (with H) */
> +  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_SSCOFPMF,          /* Sscofpmf only */
>    CSR_CLASS_SSCOFPMF_32,       /* Sscofpmf RV32 only */
>    CSR_CLASS_SSTC,              /* Sstc only */
> @@ -1028,6 +1036,16 @@ riscv_csr_address (const char *csr_name,
>      case CSR_CLASS_V:
>        extension = "zve32x";
>        break;
> +    case CSR_CLASS_SMAIA:
> +    case CSR_CLASS_SMAIA_AND_H:
> +    case CSR_CLASS_SMAIA_32:
> +    case CSR_CLASS_SMAIA_AND_H_32:
> +      is_rv32_only = (csr_class == CSR_CLASS_SMAIA_32
> +                     || csr_class == CSR_CLASS_SMAIA_AND_H_32);
> +      is_h_required = (csr_class == CSR_CLASS_SMAIA_AND_H
> +                      || csr_class == CSR_CLASS_SMAIA_AND_H_32);
> +      extension = "smaia";
> +      break;
>      case CSR_CLASS_SMSTATEEN:
>      case CSR_CLASS_SMSTATEEN_AND_H:
>      case CSR_CLASS_SMSTATEEN_32:
> @@ -1038,6 +1056,16 @@ riscv_csr_address (const char *csr_name,
>                       || csr_class == CSR_CLASS_SMSTATEEN_AND_H_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_SSCOFPMF_32:
>        is_rv32_only = true;
>        /* Fall through.  */
> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> index b4b3806a085..dd238cf54a9 100644
> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> @@ -313,6 +313,26 @@ 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: 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: 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: 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 +353,18 @@ 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: 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: 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..38b1e53dd6c 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,27 @@ _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
> +       .cfi_offset hvien, 6176
> +       .cfi_offset hvictl, 6180
> +       .cfi_offset hviprio1, 6424
> +       .cfi_offset hviprio2, 6428
> +       .cfi_offset hidelegh, 6220
> +       .cfi_offset hvienh, 6240
> +       .cfi_offset hviph, 6484
> +       .cfi_offset hviprio1h, 6488
> +       .cfi_offset hviprio2h, 6492
>         # Smstateen extension
>         .cfi_offset mstateen0, 3120
>         .cfi_offset mstateen1, 3124
> @@ -328,6 +351,19 @@ _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 vsiselect, 2368
> +       .cfi_offset vsireg, 2372
> +       .cfi_offset vstopei, 2416
> +       .cfi_offset vstopi, 15040
> +       .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..879c7e8a97d 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p10.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
> @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 999e9af1520..44499fa4dbe 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
> @@ -411,6 +411,85 @@
>  .*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 `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', 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 +562,52 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..70397194465 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p11.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
> @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 a099e4ecc93..09a106806d2 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
> @@ -409,6 +409,85 @@
>  .*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 `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', 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 +560,52 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..142f60c216c 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p12.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
> @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 cf8f2e25634..7b138244ee1 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
> @@ -271,6 +271,85 @@
>  .*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 `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', 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 +422,52 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..fa843727e80 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 5f298c1dda9..e63719ec066 100644
> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> @@ -461,6 +461,85 @@
>  .*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 `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvien', needs `h' extension
> +.*Warning: invalid CSR `hvien', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hvictl', needs `h' extension
> +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1', needs `h' extension
> +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2', needs `h' extension
> +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> +.*Warning: invalid CSR `hidelegh', needs `h' extension
> +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hvienh', needs rv32i extension
> +.*Warning: invalid CSR `hvienh', needs `h' extension
> +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviph', needs rv32i extension
> +.*Warning: invalid CSR `hviph', needs `h' extension
> +.*Warning: invalid CSR `hviph', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> +.*Warning: invalid CSR `hviprio2h', 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 +612,52 @@
>  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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 128aeb83a04..21939b20a6d 100644
> --- a/gas/testsuite/gas/riscv/csr.s
> +++ b/gas/testsuite/gas/riscv/csr.s
> @@ -337,6 +337,28 @@
>         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
> +       csr hvien
> +       csr hvictl
> +       csr hviprio1
> +       csr hviprio2
> +       csr hidelegh
> +       csr hvienh
> +       csr hviph
> +       csr hviprio1h
> +       csr hviprio2h
> +
>         # Smstateen extension
>         csr mstateen0
>         csr mstateen1
> @@ -359,6 +381,20 @@
>         csr hstateen2h
>         csr hstateen3h
>
> +       # Ssaia
> +       csr siselect
> +       csr sireg
> +       csr stopei
> +       csr stopi
> +       csr sieh
> +       csr siph
> +       csr vsiselect
> +       csr vsireg
> +       csr vstopei
> +       csr vstopi
> +       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 f36b06dcd6b..8beed0b1b42 100644
> --- a/include/opcode/riscv-opc.h
> +++ b/include/opcode/riscv-opc.h
> @@ -2661,6 +2661,27 @@
>  #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
> +#define CSR_HVIEN     0x608
> +#define CSR_HVICTL    0x609
> +#define CSR_HVIPRIO1  0x646
> +#define CSR_HVIPRIO2  0x647
> +#define CSR_HIDELEGH  0x613
> +#define CSR_HVIENH    0x618
> +#define CSR_HVIPH     0x655
> +#define CSR_HVIPRIO1H 0x656
> +#define CSR_HVIPRIO2H 0x657
>  /* Smstateen extension */
>  #define CSR_MSTATEEN0 0x30c
>  #define CSR_MSTATEEN1 0x30d
> @@ -2682,6 +2703,19 @@
>  #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_VSISELECT 0x250
> +#define CSR_VSIREG    0x251
> +#define CSR_VSTOPEI   0x25c
> +#define CSR_VSTOPI    0xeb0
> +#define CSR_VSIEH     0x214
> +#define CSR_VSIPH     0x254
>  /* Sscofpmf extension */
>  #define CSR_SCOUNTOVF 0xda0
>  #define CSR_MHPMEVENT3H 0x723
> @@ -3504,6 +3538,27 @@ 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)

> +DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> +DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)

Just curious does the spec clarify these belonged to smaia? or should
these just belonged to h?

>  /* Smstateen extension */
>  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 +3580,19 @@ DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_
>  DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>  DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H, CSR_CLASS_SMSTATEEN_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(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(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)

Similar, should these belonged to only h? or ssaia + h?

Thanks
Nelson

>  /* 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
>
  
Christoph Müllner Nov. 18, 2022, 8:33 a.m. UTC | #3
On Fri, Nov 18, 2022 at 6:07 AM Tsukasa OI <research_trasio@irq.a4lg.com>
wrote:

> LGTM except it misses riscv_implicit_subsets.  I think all privileged
> extensions with either:
> *   New CSRs
> *   New CSR bits
> *   Dependency with use of CSRs
> will be required to add 'Zicsr' to its implication.
>
> Quick Background: The privileged architecture itself depends on 'Zicsr'
> but there's no direct way to detect the privileged architecture itself).
>
> The patch attached will make this commit complete.
>

Ok, thx!


>
> Thanks,
> Tsukasa
>
> On 2022/11/18 9:32, Christoph Muellner 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 marcro.
> >       (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_HVIEN): Likewise.
> >       (CSR_HVICTL): Likewise.
> >       (CSR_HVIPRIO1): Likewise.
> >       (CSR_HVIPRIO2): Likewise.
> >       (CSR_HIDELEGH): Likewise.
> >       (CSR_HVIENH): Likewise.
> >       (CSR_HVIPH): Likewise.
> >       (CSR_HVIPRIO1H): Likewise.
> >       (CSR_HVIPRIO2H): Likewise.
> >       (CSR_SISELECT): Likewise.
> >       (CSR_SIREG): Likewise.
> >       (CSR_STOPEI): Likewise.
> >       (CSR_STOPI): Likewise.
> >       (CSR_SIEH): Likewise.
> >       (CSR_SIPH): Likewise.
> >       (CSR_VSISELECT): Likewise.
> >       (CSR_VSIREG): Likewise.
> >       (CSR_VSTOPEI): Likewise.
> >       (CSR_VSTOPI): Likewise.
> >       (CSR_VSIEH): Likewise.
> >       (CSR_VSIPH): Likewise.
> >       (DECLARE_CSR): Add CSRs for Smaia and Ssaia.
> >
> > 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                           |   2 +
> >  gas/config/tc-riscv.c                       |  28 +++++
> >  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, 958 insertions(+)
> >
> > diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
> > index cfec9a6996c..dd75817b1bd 100644
> > --- a/bfd/elfxx-riscv.c
> > +++ b/bfd/elfxx-riscv.c
> > @@ -1216,8 +1216,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 },
> >    {"sstc",           ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> >    {"svinval",                ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> > diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> > index 2dc92ecd3c3..78aa15400f8 100644
> > --- a/gas/config/tc-riscv.c
> > +++ b/gas/config/tc-riscv.c
> > @@ -68,10 +68,18 @@ 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_AND_H,     /* Smaia with H */
> > +  CSR_CLASS_SMAIA_32,                /* Smaia, rv32 only */
> > +  CSR_CLASS_SMAIA_AND_H_32,  /* Smaia with H, rv32 only */
> >    CSR_CLASS_SMSTATEEN,               /* Smstateen only */
> >    CSR_CLASS_SMSTATEEN_AND_H, /* Smstateen only (with H) */
> >    CSR_CLASS_SMSTATEEN_32,    /* Smstateen RV32 only */
> >    CSR_CLASS_SMSTATEEN_AND_H_32,      /* Smstateen RV32 only (with H) */
> > +  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_SSCOFPMF,                /* Sscofpmf only */
> >    CSR_CLASS_SSCOFPMF_32,     /* Sscofpmf RV32 only */
> >    CSR_CLASS_SSTC,            /* Sstc only */
> > @@ -1028,6 +1036,16 @@ riscv_csr_address (const char *csr_name,
> >      case CSR_CLASS_V:
> >        extension = "zve32x";
> >        break;
> > +    case CSR_CLASS_SMAIA:
> > +    case CSR_CLASS_SMAIA_AND_H:
> > +    case CSR_CLASS_SMAIA_32:
> > +    case CSR_CLASS_SMAIA_AND_H_32:
> > +      is_rv32_only = (csr_class == CSR_CLASS_SMAIA_32
> > +                   || csr_class == CSR_CLASS_SMAIA_AND_H_32);
> > +      is_h_required = (csr_class == CSR_CLASS_SMAIA_AND_H
> > +                    || csr_class == CSR_CLASS_SMAIA_AND_H_32);
> > +      extension = "smaia";
> > +      break;
> >      case CSR_CLASS_SMSTATEEN:
> >      case CSR_CLASS_SMSTATEEN_AND_H:
> >      case CSR_CLASS_SMSTATEEN_32:
> > @@ -1038,6 +1056,16 @@ riscv_csr_address (const char *csr_name,
> >                     || csr_class == CSR_CLASS_SMSTATEEN_AND_H_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_SSCOFPMF_32:
> >        is_rv32_only = true;
> >        /* Fall through.  */
> > diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> > index b4b3806a085..dd238cf54a9 100644
> > --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> > +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> > @@ -313,6 +313,26 @@ 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: 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: 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: 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 +353,18 @@ 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: 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: 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..38b1e53dd6c 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,27 @@ _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
> > +     .cfi_offset hvien, 6176
> > +     .cfi_offset hvictl, 6180
> > +     .cfi_offset hviprio1, 6424
> > +     .cfi_offset hviprio2, 6428
> > +     .cfi_offset hidelegh, 6220
> > +     .cfi_offset hvienh, 6240
> > +     .cfi_offset hviph, 6484
> > +     .cfi_offset hviprio1h, 6488
> > +     .cfi_offset hviprio2h, 6492
> >       # Smstateen extension
> >       .cfi_offset mstateen0, 3120
> >       .cfi_offset mstateen1, 3124
> > @@ -328,6 +351,19 @@ _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 vsiselect, 2368
> > +     .cfi_offset vsireg, 2372
> > +     .cfi_offset vstopei, 2416
> > +     .cfi_offset vstopi, 15040
> > +     .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..879c7e8a97d 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p10.d
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
> > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
> >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
> >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 999e9af1520..44499fa4dbe 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
> > @@ -411,6 +411,85 @@
> >  .*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 `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', 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 +562,52 @@
> >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..70397194465 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p11.d
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
> > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
> >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
> >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 a099e4ecc93..09a106806d2 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
> > @@ -409,6 +409,85 @@
> >  .*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 `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', 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 +560,52 @@
> >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..142f60c216c 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p12.d
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
> > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
> >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
> >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 cf8f2e25634..7b138244ee1 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
> > @@ -271,6 +271,85 @@
> >  .*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 `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', 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 +422,52 @@
> >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..fa843727e80 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
> >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
> >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 5f298c1dda9..e63719ec066 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> > @@ -461,6 +461,85 @@
> >  .*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 `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', 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 +612,52 @@
> >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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 128aeb83a04..21939b20a6d 100644
> > --- a/gas/testsuite/gas/riscv/csr.s
> > +++ b/gas/testsuite/gas/riscv/csr.s
> > @@ -337,6 +337,28 @@
> >       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
> > +     csr hvien
> > +     csr hvictl
> > +     csr hviprio1
> > +     csr hviprio2
> > +     csr hidelegh
> > +     csr hvienh
> > +     csr hviph
> > +     csr hviprio1h
> > +     csr hviprio2h
> > +
> >       # Smstateen extension
> >       csr mstateen0
> >       csr mstateen1
> > @@ -359,6 +381,20 @@
> >       csr hstateen2h
> >       csr hstateen3h
> >
> > +     # Ssaia
> > +     csr siselect
> > +     csr sireg
> > +     csr stopei
> > +     csr stopi
> > +     csr sieh
> > +     csr siph
> > +     csr vsiselect
> > +     csr vsireg
> > +     csr vstopei
> > +     csr vstopi
> > +     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 f36b06dcd6b..8beed0b1b42 100644
> > --- a/include/opcode/riscv-opc.h
> > +++ b/include/opcode/riscv-opc.h
> > @@ -2661,6 +2661,27 @@
> >  #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
> > +#define CSR_HVIEN     0x608
> > +#define CSR_HVICTL    0x609
> > +#define CSR_HVIPRIO1  0x646
> > +#define CSR_HVIPRIO2  0x647
> > +#define CSR_HIDELEGH  0x613
> > +#define CSR_HVIENH    0x618
> > +#define CSR_HVIPH     0x655
> > +#define CSR_HVIPRIO1H 0x656
> > +#define CSR_HVIPRIO2H 0x657
> >  /* Smstateen extension */
> >  #define CSR_MSTATEEN0 0x30c
> >  #define CSR_MSTATEEN1 0x30d
> > @@ -2682,6 +2703,19 @@
> >  #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_VSISELECT 0x250
> > +#define CSR_VSIREG    0x251
> > +#define CSR_VSTOPEI   0x25c
> > +#define CSR_VSTOPI    0xeb0
> > +#define CSR_VSIEH     0x214
> > +#define CSR_VSIPH     0x254
> >  /* Sscofpmf extension */
> >  #define CSR_SCOUNTOVF 0xda0
> >  #define CSR_MHPMEVENT3H 0x723
> > @@ -3504,6 +3538,27 @@ 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)
> > +DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >  /* Smstateen extension */
> >  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 +3580,19 @@ DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H,
> CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_
> >  DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H, CSR_CLASS_SMSTATEEN_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >  DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H, CSR_CLASS_SMSTATEEN_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >  DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H, CSR_CLASS_SMSTATEEN_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(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(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)
  
Tsukasa OI Nov. 18, 2022, 8:44 a.m. UTC | #4
Sorry,

On my Ssstateen patch,
<https://sourceware.org/pipermail/binutils/2022-November/124156.html>
I did like the attached patch (Smaia → Ssaia, Ssaia → Zicsr).

I forgot to include Smaia → Ssaia dependency (just like M → Zmmul).

Thanks,
Tsukasa

On 2022/11/18 17:33, Christoph Müllner wrote:
> 
> 
> On Fri, Nov 18, 2022 at 6:07 AM Tsukasa OI <research_trasio@irq.a4lg.com
> <mailto:research_trasio@irq.a4lg.com>> wrote:
> 
>     LGTM except it misses riscv_implicit_subsets.  I think all privileged
>     extensions with either:
>     *   New CSRs
>     *   New CSR bits
>     *   Dependency with use of CSRs
>     will be required to add 'Zicsr' to its implication.
> 
>     Quick Background: The privileged architecture itself depends on 'Zicsr'
>     but there's no direct way to detect the privileged architecture itself).
> 
>     The patch attached will make this commit complete.
> 
> 
> Ok, thx!
>  
> 
> 
>     Thanks,
>     Tsukasa
> 
>     On 2022/11/18 9:32, Christoph Muellner wrote:
>     > From: Christoph Müllner <christoph.muellner@vrull.eu
>     <mailto: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 marcro.
>     >       (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_HVIEN): Likewise.
>     >       (CSR_HVICTL): Likewise.
>     >       (CSR_HVIPRIO1): Likewise.
>     >       (CSR_HVIPRIO2): Likewise.
>     >       (CSR_HIDELEGH): Likewise.
>     >       (CSR_HVIENH): Likewise.
>     >       (CSR_HVIPH): Likewise.
>     >       (CSR_HVIPRIO1H): Likewise.
>     >       (CSR_HVIPRIO2H): Likewise.
>     >       (CSR_SISELECT): Likewise.
>     >       (CSR_SIREG): Likewise.
>     >       (CSR_STOPEI): Likewise.
>     >       (CSR_STOPI): Likewise.
>     >       (CSR_SIEH): Likewise.
>     >       (CSR_SIPH): Likewise.
>     >       (CSR_VSISELECT): Likewise.
>     >       (CSR_VSIREG): Likewise.
>     >       (CSR_VSTOPEI): Likewise.
>     >       (CSR_VSTOPI): Likewise.
>     >       (CSR_VSIEH): Likewise.
>     >       (CSR_VSIPH): Likewise.
>     >       (DECLARE_CSR): Add CSRs for Smaia and Ssaia.
>     >
>     > Changes for v2:
>     > - Add hypervisor and VS CSRs
>     > - Fix whitespace issue
>     >
>     > Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu
>     <mailto:christoph.muellner@vrull.eu>>
>     > ---
>     >  bfd/elfxx-riscv.c                           |   2 +
>     >  gas/config/tc-riscv.c                       |  28 +++++
>     >  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, 958 insertions(+)
>     >
>     > diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
>     > index cfec9a6996c..dd75817b1bd 100644
>     > --- a/bfd/elfxx-riscv.c
>     > +++ b/bfd/elfxx-riscv.c
>     > @@ -1216,8 +1216,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 },
>     >    {"sstc",           ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>     >    {"svinval",                ISA_SPEC_CLASS_DRAFT,           1,
>     0, 0 },
>     > diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
>     > index 2dc92ecd3c3..78aa15400f8 100644
>     > --- a/gas/config/tc-riscv.c
>     > +++ b/gas/config/tc-riscv.c
>     > @@ -68,10 +68,18 @@ 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_AND_H,     /* Smaia with H */
>     > +  CSR_CLASS_SMAIA_32,                /* Smaia, rv32 only */
>     > +  CSR_CLASS_SMAIA_AND_H_32,  /* Smaia with H, rv32 only */
>     >    CSR_CLASS_SMSTATEEN,               /* Smstateen only */
>     >    CSR_CLASS_SMSTATEEN_AND_H, /* Smstateen only (with H) */
>     >    CSR_CLASS_SMSTATEEN_32,    /* Smstateen RV32 only */
>     >    CSR_CLASS_SMSTATEEN_AND_H_32,      /* Smstateen RV32 only (with
>     H) */
>     > +  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_SSCOFPMF,                /* Sscofpmf only */
>     >    CSR_CLASS_SSCOFPMF_32,     /* Sscofpmf RV32 only */
>     >    CSR_CLASS_SSTC,            /* Sstc only */
>     > @@ -1028,6 +1036,16 @@ riscv_csr_address (const char *csr_name,
>     >      case CSR_CLASS_V:
>     >        extension = "zve32x";
>     >        break;
>     > +    case CSR_CLASS_SMAIA:
>     > +    case CSR_CLASS_SMAIA_AND_H:
>     > +    case CSR_CLASS_SMAIA_32:
>     > +    case CSR_CLASS_SMAIA_AND_H_32:
>     > +      is_rv32_only = (csr_class == CSR_CLASS_SMAIA_32
>     > +                   || csr_class == CSR_CLASS_SMAIA_AND_H_32);
>     > +      is_h_required = (csr_class == CSR_CLASS_SMAIA_AND_H
>     > +                    || csr_class == CSR_CLASS_SMAIA_AND_H_32);
>     > +      extension = "smaia";
>     > +      break;
>     >      case CSR_CLASS_SMSTATEEN:
>     >      case CSR_CLASS_SMSTATEEN_AND_H:
>     >      case CSR_CLASS_SMSTATEEN_32:
>     > @@ -1038,6 +1056,16 @@ riscv_csr_address (const char *csr_name,
>     >                     || csr_class == CSR_CLASS_SMSTATEEN_AND_H_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_SSCOFPMF_32:
>     >        is_rv32_only = true;
>     >        /* Fall through.  */
>     > diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d
>     b/gas/testsuite/gas/riscv/csr-dw-regnums.d
>     > index b4b3806a085..dd238cf54a9 100644
>     > --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
>     > +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
>     > @@ -313,6 +313,26 @@ 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: 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: 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: 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 +353,18 @@ 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: 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: 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..38b1e53dd6c 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,27 @@ _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
>     > +     .cfi_offset hvien, 6176
>     > +     .cfi_offset hvictl, 6180
>     > +     .cfi_offset hviprio1, 6424
>     > +     .cfi_offset hviprio2, 6428
>     > +     .cfi_offset hidelegh, 6220
>     > +     .cfi_offset hvienh, 6240
>     > +     .cfi_offset hviph, 6484
>     > +     .cfi_offset hviprio1h, 6488
>     > +     .cfi_offset hviprio2h, 6492
>     >       # Smstateen extension
>     >       .cfi_offset mstateen0, 3120
>     >       .cfi_offset mstateen1, 3124
>     > @@ -328,6 +351,19 @@ _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 vsiselect, 2368
>     > +     .cfi_offset vsireg, 2372
>     > +     .cfi_offset vstopei, 2416
>     > +     .cfi_offset vstopi, 15040
>     > +     .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..879c7e8a97d 100644
>     > --- a/gas/testsuite/gas/riscv/csr-version-1p10.d
>     > +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
>     > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>     >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>     >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
>     > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 999e9af1520..44499fa4dbe 100644
>     > --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
>     > +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
>     > @@ -411,6 +411,85 @@
>     >  .*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 `hvien', needs `h' extension
>     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvien', needs `h' extension
>     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvictl', needs `h' extension
>     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvictl', needs `h' extension
>     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
>     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
>     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
>     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
>     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
>     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
>     > +.*Warning: invalid CSR `hvienh', needs `h' extension
>     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
>     > +.*Warning: invalid CSR `hvienh', needs `h' extension
>     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviph', needs rv32i extension
>     > +.*Warning: invalid CSR `hviph', needs `h' extension
>     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviph', needs rv32i extension
>     > +.*Warning: invalid CSR `hviph', needs `h' extension
>     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2h', 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 +562,52 @@
>     >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>     >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>     >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..70397194465 100644
>     > --- a/gas/testsuite/gas/riscv/csr-version-1p11.d
>     > +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
>     > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>     >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>     >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
>     > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 a099e4ecc93..09a106806d2 100644
>     > --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
>     > +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
>     > @@ -409,6 +409,85 @@
>     >  .*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 `hvien', needs `h' extension
>     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvien', needs `h' extension
>     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvictl', needs `h' extension
>     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvictl', needs `h' extension
>     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
>     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
>     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
>     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
>     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
>     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
>     > +.*Warning: invalid CSR `hvienh', needs `h' extension
>     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
>     > +.*Warning: invalid CSR `hvienh', needs `h' extension
>     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviph', needs rv32i extension
>     > +.*Warning: invalid CSR `hviph', needs `h' extension
>     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviph', needs rv32i extension
>     > +.*Warning: invalid CSR `hviph', needs `h' extension
>     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2h', 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 +560,52 @@
>     >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>     >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>     >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..142f60c216c 100644
>     > --- a/gas/testsuite/gas/riscv/csr-version-1p12.d
>     > +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
>     > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>     >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>     >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
>     > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 cf8f2e25634..7b138244ee1 100644
>     > --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
>     > +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
>     > @@ -271,6 +271,85 @@
>     >  .*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 `hvien', needs `h' extension
>     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvien', needs `h' extension
>     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvictl', needs `h' extension
>     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvictl', needs `h' extension
>     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
>     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
>     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
>     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
>     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
>     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
>     > +.*Warning: invalid CSR `hvienh', needs `h' extension
>     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
>     > +.*Warning: invalid CSR `hvienh', needs `h' extension
>     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviph', needs rv32i extension
>     > +.*Warning: invalid CSR `hviph', needs `h' extension
>     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviph', needs rv32i extension
>     > +.*Warning: invalid CSR `hviph', needs `h' extension
>     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2h', 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 +422,52 @@
>     >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>     >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>     >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..fa843727e80 100644
>     > --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
>     > +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
>     > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
>     >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
>     >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
>     > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 5f298c1dda9..e63719ec066 100644
>     > --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
>     > +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
>     > @@ -461,6 +461,85 @@
>     >  .*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 `hvien', needs `h' extension
>     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvien', needs `h' extension
>     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvictl', needs `h' extension
>     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvictl', needs `h' extension
>     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
>     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
>     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
>     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
>     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
>     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
>     > +.*Warning: invalid CSR `hvienh', needs `h' extension
>     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
>     > +.*Warning: invalid CSR `hvienh', needs `h' extension
>     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviph', needs rv32i extension
>     > +.*Warning: invalid CSR `hviph', needs `h' extension
>     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviph', needs rv32i extension
>     > +.*Warning: invalid CSR `hviph', needs `h' extension
>     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
>     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
>     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
>     > +.*Warning: invalid CSR `hviprio2h', 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 +612,52 @@
>     >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
>     >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
>     >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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 128aeb83a04..21939b20a6d 100644
>     > --- a/gas/testsuite/gas/riscv/csr.s
>     > +++ b/gas/testsuite/gas/riscv/csr.s
>     > @@ -337,6 +337,28 @@
>     >       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
>     > +     csr hvien
>     > +     csr hvictl
>     > +     csr hviprio1
>     > +     csr hviprio2
>     > +     csr hidelegh
>     > +     csr hvienh
>     > +     csr hviph
>     > +     csr hviprio1h
>     > +     csr hviprio2h
>     > +
>     >       # Smstateen extension
>     >       csr mstateen0
>     >       csr mstateen1
>     > @@ -359,6 +381,20 @@
>     >       csr hstateen2h
>     >       csr hstateen3h
>     > 
>     > +     # Ssaia
>     > +     csr siselect
>     > +     csr sireg
>     > +     csr stopei
>     > +     csr stopi
>     > +     csr sieh
>     > +     csr siph
>     > +     csr vsiselect
>     > +     csr vsireg
>     > +     csr vstopei
>     > +     csr vstopi
>     > +     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 f36b06dcd6b..8beed0b1b42 100644
>     > --- a/include/opcode/riscv-opc.h
>     > +++ b/include/opcode/riscv-opc.h
>     > @@ -2661,6 +2661,27 @@
>     >  #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
>     > +#define CSR_HVIEN     0x608
>     > +#define CSR_HVICTL    0x609
>     > +#define CSR_HVIPRIO1  0x646
>     > +#define CSR_HVIPRIO2  0x647
>     > +#define CSR_HIDELEGH  0x613
>     > +#define CSR_HVIENH    0x618
>     > +#define CSR_HVIPH     0x655
>     > +#define CSR_HVIPRIO1H 0x656
>     > +#define CSR_HVIPRIO2H 0x657
>     >  /* Smstateen extension */
>     >  #define CSR_MSTATEEN0 0x30c
>     >  #define CSR_MSTATEEN1 0x30d
>     > @@ -2682,6 +2703,19 @@
>     >  #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_VSISELECT 0x250
>     > +#define CSR_VSIREG    0x251
>     > +#define CSR_VSTOPEI   0x25c
>     > +#define CSR_VSTOPI    0xeb0
>     > +#define CSR_VSIEH     0x214
>     > +#define CSR_VSIPH     0x254
>     >  /* Sscofpmf extension */
>     >  #define CSR_SCOUNTOVF 0xda0
>     >  #define CSR_MHPMEVENT3H 0x723
>     > @@ -3504,6 +3538,27 @@ 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)
>     > +DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SMAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     > +DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SMAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     > +DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SMAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     > +DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SMAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     > +DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SMAIA_AND_H_32,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     > +DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SMAIA_AND_H_32,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     > +DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SMAIA_AND_H_32,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     > +DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SMAIA_AND_H_32,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     > +DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SMAIA_AND_H_32,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     >  /* Smstateen extension */
>     >  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 +3580,19 @@ DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H,
>     CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_
>     >  DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H,
>     CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE,
>     PRIV_SPEC_CLASS_NONE)
>     >  DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H,
>     CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE,
>     PRIV_SPEC_CLASS_NONE)
>     >  DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H,
>     CSR_CLASS_SMSTATEEN_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(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(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)
>
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index dd75817b1bd3..bd6473d33c26 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},
   {"smepmp", "zicsr",		check_implicit_always},
   {"smstateen", "zicsr",	check_implicit_always},
+  {"ssaia", "zicsr",		check_implicit_always},
   {"sscofpmf", "zicsr",		check_implicit_always},
   {"sstc", "zicsr",		check_implicit_always},
   {NULL, NULL, NULL}
  
Christoph Müllner Nov. 18, 2022, 9:08 a.m. UTC | #5
On Fri, Nov 18, 2022 at 9:12 AM Nelson Chu <nelson@rivosinc.com> wrote:

> On Fri, Nov 18, 2022 at 8:32 AM 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 marcro.
> >         (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_HVIEN): Likewise.
> >         (CSR_HVICTL): Likewise.
> >         (CSR_HVIPRIO1): Likewise.
> >         (CSR_HVIPRIO2): Likewise.
> >         (CSR_HIDELEGH): Likewise.
> >         (CSR_HVIENH): Likewise.
> >         (CSR_HVIPH): Likewise.
> >         (CSR_HVIPRIO1H): Likewise.
> >         (CSR_HVIPRIO2H): Likewise.
> >         (CSR_SISELECT): Likewise.
> >         (CSR_SIREG): Likewise.
> >         (CSR_STOPEI): Likewise.
> >         (CSR_STOPI): Likewise.
> >         (CSR_SIEH): Likewise.
> >         (CSR_SIPH): Likewise.
> >         (CSR_VSISELECT): Likewise.
> >         (CSR_VSIREG): Likewise.
> >         (CSR_VSTOPEI): Likewise.
> >         (CSR_VSTOPI): Likewise.
> >         (CSR_VSIEH): Likewise.
> >         (CSR_VSIPH): Likewise.
> >         (DECLARE_CSR): Add CSRs for Smaia and Ssaia.
> >
> > 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                           |   2 +
> >  gas/config/tc-riscv.c                       |  28 +++++
> >  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, 958 insertions(+)
> >
> > diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
> > index cfec9a6996c..dd75817b1bd 100644
> > --- a/bfd/elfxx-riscv.c
> > +++ b/bfd/elfxx-riscv.c
> > @@ -1216,8 +1216,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 },
> >    {"sstc",             ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> >    {"svinval",          ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> > diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> > index 2dc92ecd3c3..78aa15400f8 100644
> > --- a/gas/config/tc-riscv.c
> > +++ b/gas/config/tc-riscv.c
> > @@ -68,10 +68,18 @@ 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_AND_H,       /* Smaia with H */
> > +  CSR_CLASS_SMAIA_32,          /* Smaia, rv32 only */
> > +  CSR_CLASS_SMAIA_AND_H_32,    /* Smaia with H, rv32 only */
> >    CSR_CLASS_SMSTATEEN,         /* Smstateen only */
> >    CSR_CLASS_SMSTATEEN_AND_H,   /* Smstateen only (with H) */
> >    CSR_CLASS_SMSTATEEN_32,      /* Smstateen RV32 only */
> >    CSR_CLASS_SMSTATEEN_AND_H_32,        /* Smstateen RV32 only (with H)
> */
> > +  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_SSCOFPMF,          /* Sscofpmf only */
> >    CSR_CLASS_SSCOFPMF_32,       /* Sscofpmf RV32 only */
> >    CSR_CLASS_SSTC,              /* Sstc only */
> > @@ -1028,6 +1036,16 @@ riscv_csr_address (const char *csr_name,
> >      case CSR_CLASS_V:
> >        extension = "zve32x";
> >        break;
> > +    case CSR_CLASS_SMAIA:
> > +    case CSR_CLASS_SMAIA_AND_H:
> > +    case CSR_CLASS_SMAIA_32:
> > +    case CSR_CLASS_SMAIA_AND_H_32:
> > +      is_rv32_only = (csr_class == CSR_CLASS_SMAIA_32
> > +                     || csr_class == CSR_CLASS_SMAIA_AND_H_32);
> > +      is_h_required = (csr_class == CSR_CLASS_SMAIA_AND_H
> > +                      || csr_class == CSR_CLASS_SMAIA_AND_H_32);
> > +      extension = "smaia";
> > +      break;
> >      case CSR_CLASS_SMSTATEEN:
> >      case CSR_CLASS_SMSTATEEN_AND_H:
> >      case CSR_CLASS_SMSTATEEN_32:
> > @@ -1038,6 +1056,16 @@ riscv_csr_address (const char *csr_name,
> >                       || csr_class == CSR_CLASS_SMSTATEEN_AND_H_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_SSCOFPMF_32:
> >        is_rv32_only = true;
> >        /* Fall through.  */
> > diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> > index b4b3806a085..dd238cf54a9 100644
> > --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> > +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> > @@ -313,6 +313,26 @@ 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: 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: 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: 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 +353,18 @@ 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: 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: 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..38b1e53dd6c 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,27 @@ _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
> > +       .cfi_offset hvien, 6176
> > +       .cfi_offset hvictl, 6180
> > +       .cfi_offset hviprio1, 6424
> > +       .cfi_offset hviprio2, 6428
> > +       .cfi_offset hidelegh, 6220
> > +       .cfi_offset hvienh, 6240
> > +       .cfi_offset hviph, 6484
> > +       .cfi_offset hviprio1h, 6488
> > +       .cfi_offset hviprio2h, 6492
> >         # Smstateen extension
> >         .cfi_offset mstateen0, 3120
> >         .cfi_offset mstateen1, 3124
> > @@ -328,6 +351,19 @@ _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 vsiselect, 2368
> > +       .cfi_offset vsireg, 2372
> > +       .cfi_offset vstopei, 2416
> > +       .cfi_offset vstopi, 15040
> > +       .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..879c7e8a97d 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p10.d
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
> > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
> >  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
> >  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 999e9af1520..44499fa4dbe 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
> > @@ -411,6 +411,85 @@
> >  .*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 `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', 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 +562,52 @@
> >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..70397194465 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p11.d
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
> > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
> >  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
> >  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 a099e4ecc93..09a106806d2 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
> > @@ -409,6 +409,85 @@
> >  .*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 `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', 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 +560,52 @@
> >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..142f60c216c 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p12.d
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
> > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
> >  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
> >  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 cf8f2e25634..7b138244ee1 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
> > @@ -271,6 +271,85 @@
> >  .*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 `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', 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 +422,52 @@
> >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..fa843727e80 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[         ]+a0,mstateen0
> >  [      ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[         ]+mstateen0,a1
> >  [      ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[         ]+a0,mstateen1
> > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 5f298c1dda9..e63719ec066 100644
> > --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> > +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> > @@ -461,6 +461,85 @@
> >  .*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 `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvien', needs `h' extension
> > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hvictl', needs `h' extension
> > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> > +.*Warning: invalid CSR `hvienh', needs `h' extension
> > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviph', needs rv32i extension
> > +.*Warning: invalid CSR `hviph', needs `h' extension
> > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> > +.*Warning: invalid CSR `hviprio2h', 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 +612,52 @@
> >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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 128aeb83a04..21939b20a6d 100644
> > --- a/gas/testsuite/gas/riscv/csr.s
> > +++ b/gas/testsuite/gas/riscv/csr.s
> > @@ -337,6 +337,28 @@
> >         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
> > +       csr hvien
> > +       csr hvictl
> > +       csr hviprio1
> > +       csr hviprio2
> > +       csr hidelegh
> > +       csr hvienh
> > +       csr hviph
> > +       csr hviprio1h
> > +       csr hviprio2h
> > +
> >         # Smstateen extension
> >         csr mstateen0
> >         csr mstateen1
> > @@ -359,6 +381,20 @@
> >         csr hstateen2h
> >         csr hstateen3h
> >
> > +       # Ssaia
> > +       csr siselect
> > +       csr sireg
> > +       csr stopei
> > +       csr stopi
> > +       csr sieh
> > +       csr siph
> > +       csr vsiselect
> > +       csr vsireg
> > +       csr vstopei
> > +       csr vstopi
> > +       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 f36b06dcd6b..8beed0b1b42 100644
> > --- a/include/opcode/riscv-opc.h
> > +++ b/include/opcode/riscv-opc.h
> > @@ -2661,6 +2661,27 @@
> >  #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
> > +#define CSR_HVIEN     0x608
> > +#define CSR_HVICTL    0x609
> > +#define CSR_HVIPRIO1  0x646
> > +#define CSR_HVIPRIO2  0x647
> > +#define CSR_HIDELEGH  0x613
> > +#define CSR_HVIENH    0x618
> > +#define CSR_HVIPH     0x655
> > +#define CSR_HVIPRIO1H 0x656
> > +#define CSR_HVIPRIO2H 0x657
> >  /* Smstateen extension */
> >  #define CSR_MSTATEEN0 0x30c
> >  #define CSR_MSTATEEN1 0x30d
> > @@ -2682,6 +2703,19 @@
> >  #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_VSISELECT 0x250
> > +#define CSR_VSIREG    0x251
> > +#define CSR_VSTOPEI   0x25c
> > +#define CSR_VSTOPI    0xeb0
> > +#define CSR_VSIEH     0x214
> > +#define CSR_VSIPH     0x254
> >  /* Sscofpmf extension */
> >  #define CSR_SCOUNTOVF 0xda0
> >  #define CSR_MHPMEVENT3H 0x723
> > @@ -3504,6 +3538,27 @@ 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)
>
> > +DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> > +DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>
> Just curious does the spec clarify these belonged to smaia? or should
> these just belonged to h?
>

The AIA spec says:
"If a hart implements the Privileged Architecture’s hypervisor extension,
then the hypervisor and
VS CSRs listed in Table 2.3 are also added"

So I think the way it is modeled is correct.




>
> >  /* Smstateen extension */
> >  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 +3580,19 @@ DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H,
> CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_
> >  DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H, CSR_CLASS_SMSTATEEN_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >  DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H, CSR_CLASS_SMSTATEEN_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >  DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H, CSR_CLASS_SMSTATEEN_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(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(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)
>
> Similar, should these belonged to only h? or ssaia + h?
>

Ssaia + h (same as above).

Palmer mentioned in response to the GCC patch, that the spec contains the
following:
"For a machine-level environment, extension Smaia encompasses all
added CSRs and all modifications to interrupt response behavior that the
AIA specifies for a hart,
over all privilege levels. For a supervisor-level environment, extension
Ssaia is essentially the same
as Smaia except excluding the machine-level CSRs and behavior not directly
visible to supervisor
level."

I would implement this such, that Smaia implies Ssaia.
Opinions?



>
> Thanks
> Nelson
>
> >  /* 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
> >
>
  
Christoph Müllner Nov. 18, 2022, 9:11 a.m. UTC | #6
On Fri, Nov 18, 2022 at 9:44 AM Tsukasa OI <research_trasio@irq.a4lg.com>
wrote:

> Sorry,
>
> On my Ssstateen patch,
> <https://sourceware.org/pipermail/binutils/2022-November/124156.html>
> I did like the attached patch (Smaia → Ssaia, Ssaia → Zicsr).
>
> I forgot to include Smaia → Ssaia dependency (just like M → Zmmul).
>

Yes, Palmer mentioned this dependency as well.
Thanks!


>
> Thanks,
> Tsukasa
>
> On 2022/11/18 17:33, Christoph Müllner wrote:
> >
> >
> > On Fri, Nov 18, 2022 at 6:07 AM Tsukasa OI <research_trasio@irq.a4lg.com
> > <mailto:research_trasio@irq.a4lg.com>> wrote:
> >
> >     LGTM except it misses riscv_implicit_subsets.  I think all privileged
> >     extensions with either:
> >     *   New CSRs
> >     *   New CSR bits
> >     *   Dependency with use of CSRs
> >     will be required to add 'Zicsr' to its implication.
> >
> >     Quick Background: The privileged architecture itself depends on
> 'Zicsr'
> >     but there's no direct way to detect the privileged architecture
> itself).
> >
> >     The patch attached will make this commit complete.
> >
> >
> > Ok, thx!
> >
> >
> >
> >     Thanks,
> >     Tsukasa
> >
> >     On 2022/11/18 9:32, Christoph Muellner wrote:
> >     > From: Christoph Müllner <christoph.muellner@vrull.eu
> >     <mailto: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 marcro.
> >     >       (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_HVIEN): Likewise.
> >     >       (CSR_HVICTL): Likewise.
> >     >       (CSR_HVIPRIO1): Likewise.
> >     >       (CSR_HVIPRIO2): Likewise.
> >     >       (CSR_HIDELEGH): Likewise.
> >     >       (CSR_HVIENH): Likewise.
> >     >       (CSR_HVIPH): Likewise.
> >     >       (CSR_HVIPRIO1H): Likewise.
> >     >       (CSR_HVIPRIO2H): Likewise.
> >     >       (CSR_SISELECT): Likewise.
> >     >       (CSR_SIREG): Likewise.
> >     >       (CSR_STOPEI): Likewise.
> >     >       (CSR_STOPI): Likewise.
> >     >       (CSR_SIEH): Likewise.
> >     >       (CSR_SIPH): Likewise.
> >     >       (CSR_VSISELECT): Likewise.
> >     >       (CSR_VSIREG): Likewise.
> >     >       (CSR_VSTOPEI): Likewise.
> >     >       (CSR_VSTOPI): Likewise.
> >     >       (CSR_VSIEH): Likewise.
> >     >       (CSR_VSIPH): Likewise.
> >     >       (DECLARE_CSR): Add CSRs for Smaia and Ssaia.
> >     >
> >     > Changes for v2:
> >     > - Add hypervisor and VS CSRs
> >     > - Fix whitespace issue
> >     >
> >     > Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu
> >     <mailto:christoph.muellner@vrull.eu>>
> >     > ---
> >     >  bfd/elfxx-riscv.c                           |   2 +
> >     >  gas/config/tc-riscv.c                       |  28 +++++
> >     >  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, 958 insertions(+)
> >     >
> >     > diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
> >     > index cfec9a6996c..dd75817b1bd 100644
> >     > --- a/bfd/elfxx-riscv.c
> >     > +++ b/bfd/elfxx-riscv.c
> >     > @@ -1216,8 +1216,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 },
> >     >    {"sstc",           ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> >     >    {"svinval",                ISA_SPEC_CLASS_DRAFT,           1,
> >     0, 0 },
> >     > diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> >     > index 2dc92ecd3c3..78aa15400f8 100644
> >     > --- a/gas/config/tc-riscv.c
> >     > +++ b/gas/config/tc-riscv.c
> >     > @@ -68,10 +68,18 @@ 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_AND_H,     /* Smaia with H */
> >     > +  CSR_CLASS_SMAIA_32,                /* Smaia, rv32 only */
> >     > +  CSR_CLASS_SMAIA_AND_H_32,  /* Smaia with H, rv32 only */
> >     >    CSR_CLASS_SMSTATEEN,               /* Smstateen only */
> >     >    CSR_CLASS_SMSTATEEN_AND_H, /* Smstateen only (with H) */
> >     >    CSR_CLASS_SMSTATEEN_32,    /* Smstateen RV32 only */
> >     >    CSR_CLASS_SMSTATEEN_AND_H_32,      /* Smstateen RV32 only (with
> >     H) */
> >     > +  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_SSCOFPMF,                /* Sscofpmf only */
> >     >    CSR_CLASS_SSCOFPMF_32,     /* Sscofpmf RV32 only */
> >     >    CSR_CLASS_SSTC,            /* Sstc only */
> >     > @@ -1028,6 +1036,16 @@ riscv_csr_address (const char *csr_name,
> >     >      case CSR_CLASS_V:
> >     >        extension = "zve32x";
> >     >        break;
> >     > +    case CSR_CLASS_SMAIA:
> >     > +    case CSR_CLASS_SMAIA_AND_H:
> >     > +    case CSR_CLASS_SMAIA_32:
> >     > +    case CSR_CLASS_SMAIA_AND_H_32:
> >     > +      is_rv32_only = (csr_class == CSR_CLASS_SMAIA_32
> >     > +                   || csr_class == CSR_CLASS_SMAIA_AND_H_32);
> >     > +      is_h_required = (csr_class == CSR_CLASS_SMAIA_AND_H
> >     > +                    || csr_class == CSR_CLASS_SMAIA_AND_H_32);
> >     > +      extension = "smaia";
> >     > +      break;
> >     >      case CSR_CLASS_SMSTATEEN:
> >     >      case CSR_CLASS_SMSTATEEN_AND_H:
> >     >      case CSR_CLASS_SMSTATEEN_32:
> >     > @@ -1038,6 +1056,16 @@ riscv_csr_address (const char *csr_name,
> >     >                     || csr_class == CSR_CLASS_SMSTATEEN_AND_H_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_SSCOFPMF_32:
> >     >        is_rv32_only = true;
> >     >        /* Fall through.  */
> >     > diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> >     b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> >     > index b4b3806a085..dd238cf54a9 100644
> >     > --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> >     > +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> >     > @@ -313,6 +313,26 @@ 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: 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: 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: 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 +353,18 @@ 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: 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: 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..38b1e53dd6c 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,27 @@ _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
> >     > +     .cfi_offset hvien, 6176
> >     > +     .cfi_offset hvictl, 6180
> >     > +     .cfi_offset hviprio1, 6424
> >     > +     .cfi_offset hviprio2, 6428
> >     > +     .cfi_offset hidelegh, 6220
> >     > +     .cfi_offset hvienh, 6240
> >     > +     .cfi_offset hviph, 6484
> >     > +     .cfi_offset hviprio1h, 6488
> >     > +     .cfi_offset hviprio2h, 6492
> >     >       # Smstateen extension
> >     >       .cfi_offset mstateen0, 3120
> >     >       .cfi_offset mstateen1, 3124
> >     > @@ -328,6 +351,19 @@ _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 vsiselect, 2368
> >     > +     .cfi_offset vsireg, 2372
> >     > +     .cfi_offset vstopei, 2416
> >     > +     .cfi_offset vstopi, 15040
> >     > +     .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..879c7e8a97d 100644
> >     > --- a/gas/testsuite/gas/riscv/csr-version-1p10.d
> >     > +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
> >     > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[
>  ]+a0,mstateen0
> >     >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[
>  ]+mstateen0,a1
> >     >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[
>  ]+a0,mstateen1
> >     > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 999e9af1520..44499fa4dbe 100644
> >     > --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
> >     > +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
> >     > @@ -411,6 +411,85 @@
> >     >  .*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 `hvien', needs `h' extension
> >     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvien', needs `h' extension
> >     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `h' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `h' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hvienh', needs `h' extension
> >     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hvienh', needs `h' extension
> >     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviph', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviph', needs `h' extension
> >     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviph', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviph', needs `h' extension
> >     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2h', 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 +562,52 @@
> >     >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >     >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >     >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..70397194465 100644
> >     > --- a/gas/testsuite/gas/riscv/csr-version-1p11.d
> >     > +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
> >     > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[
>  ]+a0,mstateen0
> >     >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[
>  ]+mstateen0,a1
> >     >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[
>  ]+a0,mstateen1
> >     > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 a099e4ecc93..09a106806d2 100644
> >     > --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
> >     > +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
> >     > @@ -409,6 +409,85 @@
> >     >  .*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 `hvien', needs `h' extension
> >     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvien', needs `h' extension
> >     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `h' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `h' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hvienh', needs `h' extension
> >     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hvienh', needs `h' extension
> >     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviph', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviph', needs `h' extension
> >     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviph', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviph', needs `h' extension
> >     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2h', 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 +560,52 @@
> >     >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >     >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >     >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..142f60c216c 100644
> >     > --- a/gas/testsuite/gas/riscv/csr-version-1p12.d
> >     > +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
> >     > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[
>  ]+a0,mstateen0
> >     >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[
>  ]+mstateen0,a1
> >     >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[
>  ]+a0,mstateen1
> >     > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 cf8f2e25634..7b138244ee1 100644
> >     > --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
> >     > +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
> >     > @@ -271,6 +271,85 @@
> >     >  .*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 `hvien', needs `h' extension
> >     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvien', needs `h' extension
> >     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `h' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `h' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hvienh', needs `h' extension
> >     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hvienh', needs `h' extension
> >     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviph', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviph', needs `h' extension
> >     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviph', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviph', needs `h' extension
> >     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2h', 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 +422,52 @@
> >     >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >     >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >     >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..fa843727e80 100644
> >     > --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> >     > +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
> >     > @@ -601,6 +601,46 @@ 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]+:[   ]+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]+:[   ]+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]+:[   ]+30c02573[     ]+csrr[
>  ]+a0,mstateen0
> >     >  [    ]+[0-9a-f]+:[   ]+30c59073[     ]+csrw[
>  ]+mstateen0,a1
> >     >  [    ]+[0-9a-f]+:[   ]+30d02573[     ]+csrr[
>  ]+a0,mstateen1
> >     > @@ -641,6 +681,30 @@ 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]+:[   ]+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]+:[   ]+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 5f298c1dda9..e63719ec066 100644
> >     > --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> >     > +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
> >     > @@ -461,6 +461,85 @@
> >     >  .*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 `hvien', needs `h' extension
> >     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvien', needs `h' extension
> >     > +.*Warning: invalid CSR `hvien', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `h' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `h' extension
> >     > +.*Warning: invalid CSR `hvictl', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `h' extension
> >     > +.*Warning: invalid CSR `hidelegh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hvienh', needs `h' extension
> >     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hvienh', needs rv32i extension
> >     > +.*Warning: invalid CSR `hvienh', needs `h' extension
> >     > +.*Warning: invalid CSR `hvienh', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviph', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviph', needs `h' extension
> >     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviph', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviph', needs `h' extension
> >     > +.*Warning: invalid CSR `hviph', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs rv32i extension
> >     > +.*Warning: invalid CSR `hviprio2h', needs `h' extension
> >     > +.*Warning: invalid CSR `hviprio2h', 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 +612,52 @@
> >     >  .*Warning: invalid CSR `hstateen3h', needs rv32i extension
> >     >  .*Warning: invalid CSR `hstateen3h', needs `h' extension
> >     >  .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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 128aeb83a04..21939b20a6d 100644
> >     > --- a/gas/testsuite/gas/riscv/csr.s
> >     > +++ b/gas/testsuite/gas/riscv/csr.s
> >     > @@ -337,6 +337,28 @@
> >     >       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
> >     > +     csr hvien
> >     > +     csr hvictl
> >     > +     csr hviprio1
> >     > +     csr hviprio2
> >     > +     csr hidelegh
> >     > +     csr hvienh
> >     > +     csr hviph
> >     > +     csr hviprio1h
> >     > +     csr hviprio2h
> >     > +
> >     >       # Smstateen extension
> >     >       csr mstateen0
> >     >       csr mstateen1
> >     > @@ -359,6 +381,20 @@
> >     >       csr hstateen2h
> >     >       csr hstateen3h
> >     >
> >     > +     # Ssaia
> >     > +     csr siselect
> >     > +     csr sireg
> >     > +     csr stopei
> >     > +     csr stopi
> >     > +     csr sieh
> >     > +     csr siph
> >     > +     csr vsiselect
> >     > +     csr vsireg
> >     > +     csr vstopei
> >     > +     csr vstopi
> >     > +     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 f36b06dcd6b..8beed0b1b42 100644
> >     > --- a/include/opcode/riscv-opc.h
> >     > +++ b/include/opcode/riscv-opc.h
> >     > @@ -2661,6 +2661,27 @@
> >     >  #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
> >     > +#define CSR_HVIEN     0x608
> >     > +#define CSR_HVICTL    0x609
> >     > +#define CSR_HVIPRIO1  0x646
> >     > +#define CSR_HVIPRIO2  0x647
> >     > +#define CSR_HIDELEGH  0x613
> >     > +#define CSR_HVIENH    0x618
> >     > +#define CSR_HVIPH     0x655
> >     > +#define CSR_HVIPRIO1H 0x656
> >     > +#define CSR_HVIPRIO2H 0x657
> >     >  /* Smstateen extension */
> >     >  #define CSR_MSTATEEN0 0x30c
> >     >  #define CSR_MSTATEEN1 0x30d
> >     > @@ -2682,6 +2703,19 @@
> >     >  #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_VSISELECT 0x250
> >     > +#define CSR_VSIREG    0x251
> >     > +#define CSR_VSTOPEI   0x25c
> >     > +#define CSR_VSTOPI    0xeb0
> >     > +#define CSR_VSIEH     0x214
> >     > +#define CSR_VSIPH     0x254
> >     >  /* Sscofpmf extension */
> >     >  #define CSR_SCOUNTOVF 0xda0
> >     >  #define CSR_MHPMEVENT3H 0x723
> >     > @@ -3504,6 +3538,27 @@ 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)
> >     > +DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SMAIA_AND_H,
> >     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >     > +DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SMAIA_AND_H,
> >     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >     > +DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SMAIA_AND_H,
> >     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >     > +DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SMAIA_AND_H,
> >     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >     > +DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SMAIA_AND_H_32,
> >     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >     > +DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SMAIA_AND_H_32,
> >     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >     > +DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SMAIA_AND_H_32,
> >     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >     > +DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SMAIA_AND_H_32,
> >     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >     > +DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SMAIA_AND_H_32,
> >     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >     >  /* Smstateen extension */
> >     >  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 +3580,19 @@ DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H,
> >     CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_
> >     >  DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H,
> >     CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE,
> >     PRIV_SPEC_CLASS_NONE)
> >     >  DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H,
> >     CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE,
> >     PRIV_SPEC_CLASS_NONE)
> >     >  DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H,
> >     CSR_CLASS_SMSTATEEN_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(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(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)
> >
  
Nelson Chu Nov. 18, 2022, 9:34 a.m. UTC | #7
On Fri, Nov 18, 2022 at 5:08 PM Christoph Müllner
<christoph.muellner@vrull.eu> wrote:
>
>
>
> On Fri, Nov 18, 2022 at 9:12 AM Nelson Chu <nelson@rivosinc.com> wrote:
>>
>> > +DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>> > +DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>> > +DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>> > +DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>> > +DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>> > +DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>> > +DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>> > +DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>> > +DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>>
>> Just curious does the spec clarify these belonged to smaia? or should
>> these just belonged to h?
>
>
> The AIA spec says:
> "If a hart implements the Privileged Architecture’s hypervisor extension, then the hypervisor and
> VS CSRs listed in Table 2.3 are also added"
>
> So I think the way it is modeled is correct.

So if we only enable ssaia and h, then we can only use virtual
supervisor aia CSRs, but cannot use the hypervisor aia?  If that true,
then looks good.

Thanks
Nelson
  
Tsukasa OI Nov. 19, 2022, 5:59 a.m. UTC | #8
On 2022/11/18 18:08, Christoph Müllner wrote:
> 
> I would implement this such, that Smaia implies Ssaia.
> Opinions?
> 

I agree that (even though I proposed this resolution) and I even raised
a question in a meeting when 'Zmmul' and 'M' became a problem.
'Smstateen' and 'Ssstateen' dependency is approved by Nelson (in Nov 3,
I committed that today) and I don't find any problems here.

Thanks,
Tsukasa
  
Christoph Müllner Nov. 22, 2022, 9:51 a.m. UTC | #9
On Fri, Nov 18, 2022 at 10:34 AM Nelson Chu <nelson@rivosinc.com> wrote:

> On Fri, Nov 18, 2022 at 5:08 PM Christoph Müllner
> <christoph.muellner@vrull.eu> wrote:
> >
> >
> >
> > On Fri, Nov 18, 2022 at 9:12 AM Nelson Chu <nelson@rivosinc.com> wrote:
> >>
> >> > +DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >>
> >> Just curious does the spec clarify these belonged to smaia? or should
> >> these just belonged to h?
> >
> >
> > The AIA spec says:
> > "If a hart implements the Privileged Architecture’s hypervisor
> extension, then the hypervisor and
> > VS CSRs listed in Table 2.3 are also added"
> >
> > So I think the way it is modeled is correct.
>
> So if we only enable ssaia and h, then we can only use virtual
> supervisor aia CSRs, but cannot use the hypervisor aia?  If that true,
> then looks good.
>

I double-checked, and that's not the case.
The hypervisor splits S-mode into HS and VS, but this has nothing to do
with Smaia.
Therefore all hypervisor and VS CSRs should be part of Ssaia.
I will fix that in a v3.

Thanks!
  

Patch

diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index cfec9a6996c..dd75817b1bd 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1216,8 +1216,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 },
   {"sstc",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
   {"svinval",		ISA_SPEC_CLASS_DRAFT,		1, 0, 0 },
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 2dc92ecd3c3..78aa15400f8 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -68,10 +68,18 @@  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_AND_H,	/* Smaia with H */
+  CSR_CLASS_SMAIA_32,		/* Smaia, rv32 only */
+  CSR_CLASS_SMAIA_AND_H_32,	/* Smaia with H, rv32 only */
   CSR_CLASS_SMSTATEEN,		/* Smstateen only */
   CSR_CLASS_SMSTATEEN_AND_H,	/* Smstateen only (with H) */
   CSR_CLASS_SMSTATEEN_32,	/* Smstateen RV32 only */
   CSR_CLASS_SMSTATEEN_AND_H_32,	/* Smstateen RV32 only (with H) */
+  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_SSCOFPMF,		/* Sscofpmf only */
   CSR_CLASS_SSCOFPMF_32,	/* Sscofpmf RV32 only */
   CSR_CLASS_SSTC,		/* Sstc only */
@@ -1028,6 +1036,16 @@  riscv_csr_address (const char *csr_name,
     case CSR_CLASS_V:
       extension = "zve32x";
       break;
+    case CSR_CLASS_SMAIA:
+    case CSR_CLASS_SMAIA_AND_H:
+    case CSR_CLASS_SMAIA_32:
+    case CSR_CLASS_SMAIA_AND_H_32:
+      is_rv32_only = (csr_class == CSR_CLASS_SMAIA_32
+		      || csr_class == CSR_CLASS_SMAIA_AND_H_32);
+      is_h_required = (csr_class == CSR_CLASS_SMAIA_AND_H
+		       || csr_class == CSR_CLASS_SMAIA_AND_H_32);
+      extension = "smaia";
+      break;
     case CSR_CLASS_SMSTATEEN:
     case CSR_CLASS_SMSTATEEN_AND_H:
     case CSR_CLASS_SMSTATEEN_32:
@@ -1038,6 +1056,16 @@  riscv_csr_address (const char *csr_name,
 		      || csr_class == CSR_CLASS_SMSTATEEN_AND_H_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_SSCOFPMF_32:
       is_rv32_only = true;
       /* Fall through.  */
diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d b/gas/testsuite/gas/riscv/csr-dw-regnums.d
index b4b3806a085..dd238cf54a9 100644
--- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
+++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
@@ -313,6 +313,26 @@  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: 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: 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: 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 +353,18 @@  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: 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: 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..38b1e53dd6c 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,27 @@  _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
+	.cfi_offset hvien, 6176
+	.cfi_offset hvictl, 6180
+	.cfi_offset hviprio1, 6424
+	.cfi_offset hviprio2, 6428
+	.cfi_offset hidelegh, 6220
+	.cfi_offset hvienh, 6240
+	.cfi_offset hviph, 6484
+	.cfi_offset hviprio1h, 6488
+	.cfi_offset hviprio2h, 6492
 	# Smstateen extension
 	.cfi_offset mstateen0, 3120
 	.cfi_offset mstateen1, 3124
@@ -328,6 +351,19 @@  _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 vsiselect, 2368
+	.cfi_offset vsireg, 2372
+	.cfi_offset vstopei, 2416
+	.cfi_offset vstopi, 15040
+	.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..879c7e8a97d 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p10.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
@@ -601,6 +601,46 @@  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]+:[ 	]+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]+:[ 	]+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]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
 [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
 [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
@@ -641,6 +681,30 @@  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]+:[ 	]+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]+:[ 	]+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 999e9af1520..44499fa4dbe 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p10.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
@@ -411,6 +411,85 @@ 
 .*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 `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `smaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `smaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `smaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `smaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `smaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `smaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `smaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `smaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `smaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', 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 +562,52 @@ 
 .*Warning: invalid CSR `hstateen3h', needs rv32i extension
 .*Warning: invalid CSR `hstateen3h', needs `h' extension
 .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..70397194465 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p11.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
@@ -601,6 +601,46 @@  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]+:[ 	]+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]+:[ 	]+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]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
 [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
 [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
@@ -641,6 +681,30 @@  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]+:[ 	]+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]+:[ 	]+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 a099e4ecc93..09a106806d2 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p11.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
@@ -409,6 +409,85 @@ 
 .*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 `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `smaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `smaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `smaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `smaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `smaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `smaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `smaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `smaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `smaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', 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 +560,52 @@ 
 .*Warning: invalid CSR `hstateen3h', needs rv32i extension
 .*Warning: invalid CSR `hstateen3h', needs `h' extension
 .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..142f60c216c 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p12.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
@@ -601,6 +601,46 @@  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]+:[ 	]+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]+:[ 	]+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]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
 [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
 [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
@@ -641,6 +681,30 @@  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]+:[ 	]+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]+:[ 	]+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 cf8f2e25634..7b138244ee1 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p12.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
@@ -271,6 +271,85 @@ 
 .*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 `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `smaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `smaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `smaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `smaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `smaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `smaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `smaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `smaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `smaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', 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 +422,52 @@ 
 .*Warning: invalid CSR `hstateen3h', needs rv32i extension
 .*Warning: invalid CSR `hstateen3h', needs `h' extension
 .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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..fa843727e80 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d
@@ -601,6 +601,46 @@  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]+:[ 	]+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]+:[ 	]+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]+:[ 	]+30c02573[ 	]+csrr[ 	]+a0,mstateen0
 [ 	]+[0-9a-f]+:[ 	]+30c59073[ 	]+csrw[ 	]+mstateen0,a1
 [ 	]+[0-9a-f]+:[ 	]+30d02573[ 	]+csrr[ 	]+a0,mstateen1
@@ -641,6 +681,30 @@  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]+:[ 	]+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]+:[ 	]+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 5f298c1dda9..e63719ec066 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l
@@ -461,6 +461,85 @@ 
 .*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 `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `smaia' extension
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Warning: invalid CSR `hvien', needs `smaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `smaia' extension
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Warning: invalid CSR `hvictl', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Warning: invalid CSR `hviprio1', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Warning: invalid CSR `hviprio2', needs `smaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `smaia' extension
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Warning: invalid CSR `hidelegh', needs `smaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `smaia' extension
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Warning: invalid CSR `hvienh', needs `smaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `smaia' extension
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Warning: invalid CSR `hviph', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Warning: invalid CSR `hviprio1h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', needs `smaia' extension
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Warning: invalid CSR `hviprio2h', 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 +612,52 @@ 
 .*Warning: invalid CSR `hstateen3h', needs rv32i extension
 .*Warning: invalid CSR `hstateen3h', needs `h' extension
 .*Warning: invalid CSR `hstateen3h', needs `smstateen' 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 `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 `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 128aeb83a04..21939b20a6d 100644
--- a/gas/testsuite/gas/riscv/csr.s
+++ b/gas/testsuite/gas/riscv/csr.s
@@ -337,6 +337,28 @@ 
 	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
+	csr hvien
+	csr hvictl
+	csr hviprio1
+	csr hviprio2
+	csr hidelegh
+	csr hvienh
+	csr hviph
+	csr hviprio1h
+	csr hviprio2h
+
 	# Smstateen extension
 	csr mstateen0
 	csr mstateen1
@@ -359,6 +381,20 @@ 
 	csr hstateen2h
 	csr hstateen3h
 
+	# Ssaia
+	csr siselect
+	csr sireg
+	csr stopei
+	csr stopi
+	csr sieh
+	csr siph
+	csr vsiselect
+	csr vsireg
+	csr vstopei
+	csr vstopi
+	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 f36b06dcd6b..8beed0b1b42 100644
--- a/include/opcode/riscv-opc.h
+++ b/include/opcode/riscv-opc.h
@@ -2661,6 +2661,27 @@ 
 #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
+#define CSR_HVIEN     0x608
+#define CSR_HVICTL    0x609
+#define CSR_HVIPRIO1  0x646
+#define CSR_HVIPRIO2  0x647
+#define CSR_HIDELEGH  0x613
+#define CSR_HVIENH    0x618
+#define CSR_HVIPH     0x655
+#define CSR_HVIPRIO1H 0x656
+#define CSR_HVIPRIO2H 0x657
 /* Smstateen extension */
 #define CSR_MSTATEEN0 0x30c
 #define CSR_MSTATEEN1 0x30d
@@ -2682,6 +2703,19 @@ 
 #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_VSISELECT 0x250
+#define CSR_VSIREG    0x251
+#define CSR_VSTOPEI   0x25c
+#define CSR_VSTOPI    0xeb0
+#define CSR_VSIEH     0x214
+#define CSR_VSIPH     0x254
 /* Sscofpmf extension */
 #define CSR_SCOUNTOVF 0xda0
 #define CSR_MHPMEVENT3H 0x723
@@ -3504,6 +3538,27 @@  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)
+DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SMAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SMAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 /* Smstateen extension */
 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 +3580,19 @@  DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_
 DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
 DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H, CSR_CLASS_SMSTATEEN_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(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(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)