public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Tsukasa OI <research_trasio@irq.a4lg.com>
To: "Christoph Müllner" <christoph.muellner@vrull.eu>
Cc: Binutils <binutils@sourceware.org>
Subject: Re: [PATCH] riscv: Add AIA extension support (Smaia, Ssaia)
Date: Fri, 18 Nov 2022 17:44:22 +0900	[thread overview]
Message-ID: <167ec1ce-a4d3-15f8-bf35-abd598daac69@irq.a4lg.com> (raw)
In-Reply-To: <CAEg0e7j+9Ps62ni-R+DfQBiVhXOnEqJ242zcYN6QR8jNhkDYNQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 89215 bytes --]

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)
> 

[-- Attachment #2: riscv-aia-imply-csr.patch --]
[-- Type: text/plain, Size: 665 bytes --]

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}

  reply	other threads:[~2022-11-18  8:44 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-18  0:32 Christoph Muellner
2022-11-18  5:07 ` Tsukasa OI
2022-11-18  8:33   ` Christoph Müllner
2022-11-18  8:44     ` Tsukasa OI [this message]
2022-11-18  9:11       ` Christoph Müllner
2022-11-18  8:12 ` Nelson Chu
2022-11-18  9:08   ` Christoph Müllner
2022-11-18  9:34     ` Nelson Chu
2022-11-22  9:51       ` Christoph Müllner
2022-11-19  5:59     ` Tsukasa OI
  -- strict thread matches above, loose matches on Subject: below --
2022-08-25 14:54 Christoph Muellner
2022-08-25 14:54 ` Christoph Muellner
2022-08-25 15:16 ` Christoph Müllner
2022-08-25 18:05   ` Palmer Dabbelt
2022-08-25 19:11     ` Christoph Müllner
2022-08-25 20:49       ` Palmer Dabbelt
2022-08-25 21:49         ` Philipp Tomsich
2022-08-26  9:53       ` Nelson Chu
2022-11-18  0:35         ` Christoph Müllner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=167ec1ce-a4d3-15f8-bf35-abd598daac69@irq.a4lg.com \
    --to=research_trasio@irq.a4lg.com \
    --cc=binutils@sourceware.org \
    --cc=christoph.muellner@vrull.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).