public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Jiawei <jiawei@iscas.ac.cn>
To: Nelson Chu <nelson@rivosinc.com>
Cc: binutils@sourceware.org, kito.cheng@gmail.com,
	palmer@dabbelt.com, jeffreyalaw@gmail.com, jbeulich@suse.com
Subject: Re: [PATCH] RISC-V: Support Smcsrind/Sscsrind extensions csrs.
Date: Thu, 6 Jun 2024 20:34:47 +0800	[thread overview]
Message-ID: <69f8395e-380f-4cef-b24d-121777948be5@iscas.ac.cn> (raw)
In-Reply-To: <CAPpQWtB_CtLVWzQ8JQVrf7JzjmGea4_hFTxAxQvrkXSiMSO+Ng@mail.gmail.com>

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


在 2024/6/6 11:05, Nelson Chu 写道:
>
>
> On Wed, Jun 5, 2024 at 12:00 PM Jiawei <jiawei@iscas.ac.cn> wrote:
>
>     This patch supports RISC-V Smcsrind/Sscsrind privilege extension csrs.
>     Reuse csr 'smselect/siselect', 'mireg/sireg' and
>     'vsiselect,vsireg' csrs
>     in Smaia/Ssaia extension.
>
>     bfd/ChangeLog:
>
>             * elfxx-riscv.c: New extensions.
>
>     gas/ChangeLog:
>
>             * NEWS: Updated.
>             * config/tc-riscv.c (enum riscv_csr_class): New extensions.
>             (riscv_csr_address): Ditto.
>             * testsuite/gas/riscv/csr-version-1p10.d: New csrs.
>             * testsuite/gas/riscv/csr-version-1p10.l: Ditto.
>             * testsuite/gas/riscv/csr-version-1p11.d: Ditto.
>             * testsuite/gas/riscv/csr-version-1p11.l: Ditto.
>             * testsuite/gas/riscv/csr-version-1p12.d: Ditto.
>             * testsuite/gas/riscv/csr-version-1p12.l: Ditto.
>             * testsuite/gas/riscv/csr.s: Ditto.
>             * testsuite/gas/riscv/march-help.l: New extensions.
>
>     include/ChangeLog:
>
>             * opcode/riscv-opc.h (CSR_MIREG2): New csr.
>             (CSR_MIREG3): Ditto.
>             (CSR_MIREG4): Ditto.
>             (CSR_MIREG5): Ditto.
>             (CSR_MIREG6): Ditto.
>             (CSR_SIREG2): Ditto.
>             (CSR_SIREG3): Ditto.
>             (CSR_SIREG4): Ditto.
>             (CSR_SIREG5): Ditto.
>             (CSR_SIREG6): Ditto.
>             (CSR_VSIREG2): Ditto.
>             (CSR_VSIREG3): Ditto.
>             (CSR_VSIREG4): Ditto.
>             (CSR_VSIREG5): Ditto.
>             (CSR_VSIREG6): Ditto.
>             (DECLARE_CSR): Ditto.
>
>     ---
>      bfd/elfxx-riscv.c                          |   4 +
>      gas/NEWS                                   |   2 +
>      gas/config/tc-riscv.c                      |  44 +++++++
>      gas/testsuite/gas/riscv/csr-version-1p10.d |  42 +++++++
>      gas/testsuite/gas/riscv/csr-version-1p10.l | 136
>     +++++++++++++++++++--
>      gas/testsuite/gas/riscv/csr-version-1p11.d |  42 +++++++
>      gas/testsuite/gas/riscv/csr-version-1p11.l | 136
>     +++++++++++++++++++--
>      gas/testsuite/gas/riscv/csr-version-1p12.d |  42 +++++++
>      gas/testsuite/gas/riscv/csr-version-1p12.l | 136
>     +++++++++++++++++++--
>      gas/testsuite/gas/riscv/csr.s              |  25 ++++
>      gas/testsuite/gas/riscv/march-help.l       |   2 +
>      include/opcode/riscv-opc.h                 |  46 ++++++-
>      12 files changed, 615 insertions(+), 42 deletions(-)
>
>     diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
>     index dfacb87eda0..618378c6948 100644
>     --- a/bfd/elfxx-riscv.c
>     +++ b/bfd/elfxx-riscv.c
>     @@ -1269,10 +1269,12 @@ static struct riscv_implicit_subset
>     riscv_implicit_subsets[] =
>        {"zcb", "zca",       check_implicit_always},
>        {"zcmp", "zca",      check_implicit_always},
>        {"smaia", "ssaia",           check_implicit_always},
>     +  {"smscrind", "sscsrind",     check_implicit_always},
>        {"smcntrpmf", "zicsr",       check_implicit_always},
>        {"smstateen", "ssstateen",   check_implicit_always},
>        {"smepmp", "zicsr",          check_implicit_always},
>        {"ssaia", "zicsr",           check_implicit_always},
>     +  {"sscsrind", "zicsr", check_implicit_always},
>        {"sscofpmf", "zicsr", check_implicit_always},
>        {"ssstateen", "zicsr",       check_implicit_always},
>        {"sstc", "zicsr",            check_implicit_always},
>     @@ -1431,10 +1433,12 @@ 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 },
>     +  {"smcsrind",         ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>        {"smcntrpmf",                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 },
>     +  {"sscsrind",         ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>        {"sscofpmf",         ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>        {"ssstateen",                ISA_SPEC_CLASS_DRAFT,    1, 0, 0 },
>        {"sstc",             ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>     diff --git a/gas/NEWS b/gas/NEWS
>     index e51c3bbba6d..397ebffd2bb 100644
>     --- a/gas/NEWS
>     +++ b/gas/NEWS
>     @@ -1,5 +1,7 @@
>      -*- text -*-
>
>     +* Add support for RISC-V Smcsrind/Sscsrind extension with version
>     1.0.
>     +
>
>
> After "Add support for RISC-V Zcmp extension with version 1.0."
OK, will add it after the latest RISC-V part.
>
>      * In x86 Intel syntax undue mnemonic suffixes are now warned
>     about.  This is
>        a first step towards rejecting their use where unjustified.
>
>     diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
>     index 8d749581c1d..7785c269aaf 100644
>     --- a/gas/config/tc-riscv.c
>     +++ b/gas/config/tc-riscv.c
>     @@ -77,6 +77,10 @@ enum riscv_csr_class
>        CSR_CLASS_H_32,      /* hypervisor, rv32 only */
>        CSR_CLASS_SMAIA,             /* Smaia */
>        CSR_CLASS_SMAIA_32,          /* Smaia, rv32 only */
>     +  CSR_CLASS_SMAIA_OR_SMCSRIND,         /* Smaia/Smcsrind */
>     +  CSR_CLASS_SMAIA_OR_SMCSRIND_32,              /* Smaia/Smcsrind,
>     rv32 only */
>     +  CSR_CLASS_SMCSRIND,          /* Smcsrind */
>     +  CSR_CLASS_SMCSRIND_32,               /* Smcsrind, rv32 only */
>        CSR_CLASS_SMCNTRPMF,         /* Smcntrpmf */
>        CSR_CLASS_SMCNTRPMF_32,      /* Smcntrpmf, rv32 only */
>        CSR_CLASS_SMSTATEEN,         /* Smstateen only */
>     @@ -85,6 +89,14 @@ enum riscv_csr_class
>        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_SSAIA_OR_SSCSRIND,         /* Ssaia/Smcsrind */
>     +  CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H,   /* Ssaia/Smcsrind with H */
>     +  CSR_CLASS_SSAIA_OR_SSCSRIND_32,              /* Ssaia/Smcsrind,
>     rv32 only */
>     +  CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H_32,        /* Ssaia/Smcsrind
>     with H, rv32 only */
>     +  CSR_CLASS_SSCSRIND,          /* Sscsrind */
>     +  CSR_CLASS_SSCSRIND_AND_H,    /* Sscsrind with H */
>     +  CSR_CLASS_SSCSRIND_32,               /* Sscsrind, rv32 only */
>     +  CSR_CLASS_SSCSRIND_AND_H_32, /* Sscsrind with H, rv32 only */
>
>
> Does the rv32-only CLASS look redundant?  I don't see any of them used 
> in the DECLARE_CSR.

I'm not sure, since Smcsrind/Sscsrind is originally defined as part of 
the Smaia/Ssaia extensions,

So I keep the same behaviour with the AIA extensions.

>        CSR_CLASS_SSSTATEEN,         /* S[ms]stateen only */
>        CSR_CLASS_SSSTATEEN_AND_H,   /* S[ms]stateen only (with H) */
>        CSR_CLASS_SSSTATEEN_AND_H_32,        /* S[ms]stateen RV32 only
>     (with H) */
>     @@ -1058,6 +1070,18 @@ riscv_csr_address (const char *csr_name,
>            /* Fall through.  */
>          case CSR_CLASS_SMAIA:
>            extension = "smaia";
>     +      break;
>     +       case CSR_CLASS_SMAIA_OR_SMCSRIND_32:
>     +      is_rv32_only = true;
>     +      /* Fall through.  */
>     +    case CSR_CLASS_SMAIA_OR_SMCSRIND:
>     +      extension = "smaia or smcsrind";
>     +      break;
>     +       case CSR_CLASS_SMCSRIND_32:
>     +      is_rv32_only = true;
>     +      /* Fall through.  */
>     +    case CSR_CLASS_SMCSRIND:
>     +      extension = "smcsrind";
>            break;
>          case CSR_CLASS_SMCNTRPMF_32:
>            is_rv32_only = true;
>     @@ -1081,6 +1105,26 @@ riscv_csr_address (const char *csr_name,
>            is_h_required = (csr_class == CSR_CLASS_SSAIA_AND_H
>                            || csr_class == CSR_CLASS_SSAIA_AND_H_32);
>            extension = "ssaia";
>     +      break;
>     +       case CSR_CLASS_SSAIA_OR_SSCSRIND:
>
>
> Indent?

Thanks for your mention, will fix it in next patch.

>     +    case CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H:
>     +    case CSR_CLASS_SSAIA_OR_SSCSRIND_32:
>     +    case CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H_32:
>     +      is_rv32_only = (csr_class == CSR_CLASS_SSAIA_OR_SSCSRIND_32
>     +                     || csr_class ==
>     CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H_32);
>     +      is_h_required = (csr_class == CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H
>     +                      || csr_class ==
>     CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H_32);
>     +      extension = "ssaia or sscsrind";
>     +      break;
>     +       case CSR_CLASS_SSCSRIND:
>     +    case CSR_CLASS_SSCSRIND_AND_H:
>     +    case CSR_CLASS_SSCSRIND_32:
>     +    case CSR_CLASS_SSCSRIND_AND_H_32:
>     +      is_rv32_only = (csr_class == CSR_CLASS_SSCSRIND_32
>     +                     || csr_class == CSR_CLASS_SSCSRIND_AND_H_32);
>     +      is_h_required = (csr_class == CSR_CLASS_SSCSRIND_AND_H
>     +                      || csr_class == CSR_CLASS_SSCSRIND_AND_H_32);
>     +      extension = "sscsrind";
>            break;
>          case CSR_CLASS_SSSTATEEN_AND_H_32:
>            is_rv32_only = true;
>     diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.d
>     b/gas/testsuite/gas/riscv/csr-version-1p10.d
>     index 2ee4ee55ecd..5165f4bea0d 100644
>     --- a/gas/testsuite/gas/riscv/csr-version-1p10.d
>     +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
>     @@ -623,6 +623,20 @@ Disassembly of section .text:
>      [      ]+[0-9a-f]+:[   ]+31959073[     ]+csrw[  ]+mviph,a1
>      [      ]+[0-9a-f]+:[   ]+35402573[     ]+csrr[  ]+a0,miph
>      [      ]+[0-9a-f]+:[   ]+35459073[     ]+csrw[  ]+miph,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]+:[   ]+35202573[     ]+csrr[  ]+a0,mireg2
>     +[      ]+[0-9a-f]+:[   ]+35259073[     ]+csrw[  ]+mireg2,a1
>     +[      ]+[0-9a-f]+:[   ]+35302573[     ]+csrr[  ]+a0,mireg3
>     +[      ]+[0-9a-f]+:[   ]+35359073[     ]+csrw[  ]+mireg3,a1
>     +[      ]+[0-9a-f]+:[   ]+35502573[     ]+csrr[  ]+a0,mireg4
>     +[      ]+[0-9a-f]+:[   ]+35559073[     ]+csrw[  ]+mireg4,a1
>     +[      ]+[0-9a-f]+:[   ]+35602573[     ]+csrr[  ]+a0,mireg5
>     +[      ]+[0-9a-f]+:[   ]+35659073[     ]+csrw[  ]+mireg5,a1
>     +[      ]+[0-9a-f]+:[   ]+35702573[     ]+csrr[  ]+a0,mireg6
>     +[      ]+[0-9a-f]+:[   ]+35759073[     ]+csrw[  ]+mireg6,a1
>      [      ]+[0-9a-f]+:[   ]+32102573[     ]+csrr[  ]+a0,mcyclecfg
>      [      ]+[0-9a-f]+:[   ]+32159073[     ]+csrw[  ]+mcyclecfg,a1
>      [      ]+[0-9a-f]+:[   ]+32202573[     ]+csrr[  ]+a0,minstretcfg
>     @@ -713,6 +727,34 @@ Disassembly of section .text:
>      [      ]+[0-9a-f]+:[   ]+21459073[     ]+csrw[  ]+vsieh,a1
>      [      ]+[0-9a-f]+:[   ]+25402573[     ]+csrr[  ]+a0,vsiph
>      [      ]+[0-9a-f]+:[   ]+25459073[     ]+csrw[  ]+vsiph,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]+:[   ]+15202573[     ]+csrr[  ]+a0,sireg2
>     +[      ]+[0-9a-f]+:[   ]+15259073[     ]+csrw[  ]+sireg2,a1
>     +[      ]+[0-9a-f]+:[   ]+15302573[     ]+csrr[  ]+a0,sireg3
>     +[      ]+[0-9a-f]+:[   ]+15359073[     ]+csrw[  ]+sireg3,a1
>     +[      ]+[0-9a-f]+:[   ]+15502573[     ]+csrr[  ]+a0,sireg4
>     +[      ]+[0-9a-f]+:[   ]+15559073[     ]+csrw[  ]+sireg4,a1
>     +[      ]+[0-9a-f]+:[   ]+15602573[     ]+csrr[  ]+a0,sireg5
>     +[      ]+[0-9a-f]+:[   ]+15659073[     ]+csrw[  ]+sireg5,a1
>     +[      ]+[0-9a-f]+:[   ]+15702573[     ]+csrr[  ]+a0,sireg6
>     +[      ]+[0-9a-f]+:[   ]+15759073[     ]+csrw[  ]+sireg6,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]+:[   ]+25202573[     ]+csrr[  ]+a0,vsireg2
>     +[      ]+[0-9a-f]+:[   ]+25259073[     ]+csrw[  ]+vsireg2,a1
>     +[      ]+[0-9a-f]+:[   ]+25302573[     ]+csrr[  ]+a0,vsireg3
>     +[      ]+[0-9a-f]+:[   ]+25359073[     ]+csrw[  ]+vsireg3,a1
>     +[      ]+[0-9a-f]+:[   ]+25502573[     ]+csrr[  ]+a0,vsireg4
>     +[      ]+[0-9a-f]+:[   ]+25559073[     ]+csrw[  ]+vsireg4,a1
>     +[      ]+[0-9a-f]+:[   ]+25602573[     ]+csrr[  ]+a0,vsireg5
>     +[      ]+[0-9a-f]+:[   ]+25659073[     ]+csrw[  ]+vsireg5,a1
>     +[      ]+[0-9a-f]+:[   ]+25702573[     ]+csrr[  ]+a0,vsireg6
>     +[      ]+[0-9a-f]+:[   ]+25759073[     ]+csrw[  ]+vsireg6,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 63991d5023c..17a8bb638e8 100644
>     --- a/gas/testsuite/gas/riscv/csr-version-1p10.l
>     +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
>     @@ -823,13 +823,13 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsatp', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `miselect', needs `smaia' extension
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `miselect', needs `smaia' extension
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `mireg', needs `smaia' extension
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `mireg', needs `smaia' extension
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `mtopei', needs `smaia' extension
>      .*Info: macro .*
>     @@ -889,6 +889,34 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `miph', needs `smaia' extension
>      .*Info: macro .*
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg2', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg2', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg3', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg3', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg4', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg4', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg5', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg5', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg6', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg6', needs `smcsrind' extension
>     +.*Info: macro .*
>      .*Warning: invalid CSR `mcyclecfg', needs `smcntrpmf' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `mcyclecfg', needs `smcntrpmf' extension
>     @@ -1057,13 +1085,13 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `siselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `siselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `sireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `sireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `stopei', needs `ssaia' extension
>      .*Info: macro .*
>     @@ -1125,19 +1153,19 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsiselect', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsiselect', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsireg', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsireg', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vstopei', needs `h' extension
>      .*Info: macro .*
>     @@ -1241,6 +1269,90 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsiph', needs `ssaia' extension
>      .*Info: macro .*
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>      .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>     diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.d
>     b/gas/testsuite/gas/riscv/csr-version-1p11.d
>     index 836dedef86a..1cb5a917f1a 100644
>     --- a/gas/testsuite/gas/riscv/csr-version-1p11.d
>     +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
>     @@ -623,6 +623,20 @@ Disassembly of section .text:
>      [      ]+[0-9a-f]+:[   ]+31959073[     ]+csrw[  ]+mviph,a1
>      [      ]+[0-9a-f]+:[   ]+35402573[     ]+csrr[  ]+a0,miph
>      [      ]+[0-9a-f]+:[   ]+35459073[     ]+csrw[  ]+miph,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]+:[   ]+35202573[     ]+csrr[  ]+a0,mireg2
>     +[      ]+[0-9a-f]+:[   ]+35259073[     ]+csrw[  ]+mireg2,a1
>     +[      ]+[0-9a-f]+:[   ]+35302573[     ]+csrr[  ]+a0,mireg3
>     +[      ]+[0-9a-f]+:[   ]+35359073[     ]+csrw[  ]+mireg3,a1
>     +[      ]+[0-9a-f]+:[   ]+35502573[     ]+csrr[  ]+a0,mireg4
>     +[      ]+[0-9a-f]+:[   ]+35559073[     ]+csrw[  ]+mireg4,a1
>     +[      ]+[0-9a-f]+:[   ]+35602573[     ]+csrr[  ]+a0,mireg5
>     +[      ]+[0-9a-f]+:[   ]+35659073[     ]+csrw[  ]+mireg5,a1
>     +[      ]+[0-9a-f]+:[   ]+35702573[     ]+csrr[  ]+a0,mireg6
>     +[      ]+[0-9a-f]+:[   ]+35759073[     ]+csrw[  ]+mireg6,a1
>      [      ]+[0-9a-f]+:[   ]+32102573[     ]+csrr[  ]+a0,mcyclecfg
>      [      ]+[0-9a-f]+:[   ]+32159073[     ]+csrw[  ]+mcyclecfg,a1
>      [      ]+[0-9a-f]+:[   ]+32202573[     ]+csrr[  ]+a0,minstretcfg
>     @@ -713,6 +727,34 @@ Disassembly of section .text:
>      [      ]+[0-9a-f]+:[   ]+21459073[     ]+csrw[  ]+vsieh,a1
>      [      ]+[0-9a-f]+:[   ]+25402573[     ]+csrr[  ]+a0,vsiph
>      [      ]+[0-9a-f]+:[   ]+25459073[     ]+csrw[  ]+vsiph,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]+:[   ]+15202573[     ]+csrr[  ]+a0,sireg2
>     +[      ]+[0-9a-f]+:[   ]+15259073[     ]+csrw[  ]+sireg2,a1
>     +[      ]+[0-9a-f]+:[   ]+15302573[     ]+csrr[  ]+a0,sireg3
>     +[      ]+[0-9a-f]+:[   ]+15359073[     ]+csrw[  ]+sireg3,a1
>     +[      ]+[0-9a-f]+:[   ]+15502573[     ]+csrr[  ]+a0,sireg4
>     +[      ]+[0-9a-f]+:[   ]+15559073[     ]+csrw[  ]+sireg4,a1
>     +[      ]+[0-9a-f]+:[   ]+15602573[     ]+csrr[  ]+a0,sireg5
>     +[      ]+[0-9a-f]+:[   ]+15659073[     ]+csrw[  ]+sireg5,a1
>     +[      ]+[0-9a-f]+:[   ]+15702573[     ]+csrr[  ]+a0,sireg6
>     +[      ]+[0-9a-f]+:[   ]+15759073[     ]+csrw[  ]+sireg6,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]+:[   ]+25202573[     ]+csrr[  ]+a0,vsireg2
>     +[      ]+[0-9a-f]+:[   ]+25259073[     ]+csrw[  ]+vsireg2,a1
>     +[      ]+[0-9a-f]+:[   ]+25302573[     ]+csrr[  ]+a0,vsireg3
>     +[      ]+[0-9a-f]+:[   ]+25359073[     ]+csrw[  ]+vsireg3,a1
>     +[      ]+[0-9a-f]+:[   ]+25502573[     ]+csrr[  ]+a0,vsireg4
>     +[      ]+[0-9a-f]+:[   ]+25559073[     ]+csrw[  ]+vsireg4,a1
>     +[      ]+[0-9a-f]+:[   ]+25602573[     ]+csrr[  ]+a0,vsireg5
>     +[      ]+[0-9a-f]+:[   ]+25659073[     ]+csrw[  ]+vsireg5,a1
>     +[      ]+[0-9a-f]+:[   ]+25702573[     ]+csrr[  ]+a0,vsireg6
>     +[      ]+[0-9a-f]+:[   ]+25759073[     ]+csrw[  ]+vsireg6,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 6caec9f63a5..8b797e8893e 100644
>     --- a/gas/testsuite/gas/riscv/csr-version-1p11.l
>     +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
>     @@ -819,13 +819,13 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsatp', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `miselect', needs `smaia' extension
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `miselect', needs `smaia' extension
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `mireg', needs `smaia' extension
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `mireg', needs `smaia' extension
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `mtopei', needs `smaia' extension
>      .*Info: macro .*
>     @@ -885,6 +885,34 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `miph', needs `smaia' extension
>      .*Info: macro .*
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg2', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg2', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg3', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg3', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg4', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg4', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg5', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg5', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg6', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg6', needs `smcsrind' extension
>     +.*Info: macro .*
>      .*Warning: invalid CSR `mcyclecfg', needs `smcntrpmf' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `mcyclecfg', needs `smcntrpmf' extension
>     @@ -1053,13 +1081,13 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `siselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `siselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `sireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `sireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `stopei', needs `ssaia' extension
>      .*Info: macro .*
>     @@ -1121,19 +1149,19 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsiselect', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsiselect', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsireg', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsireg', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vstopei', needs `h' extension
>      .*Info: macro .*
>     @@ -1237,6 +1265,90 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsiph', needs `ssaia' extension
>      .*Info: macro .*
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>      .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>     diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.d
>     b/gas/testsuite/gas/riscv/csr-version-1p12.d
>     index beeec9a580f..ac88d9370f8 100644
>     --- a/gas/testsuite/gas/riscv/csr-version-1p12.d
>     +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
>     @@ -623,6 +623,20 @@ Disassembly of section .text:
>      [      ]+[0-9a-f]+:[   ]+31959073[     ]+csrw[  ]+mviph,a1
>      [      ]+[0-9a-f]+:[   ]+35402573[     ]+csrr[  ]+a0,miph
>      [      ]+[0-9a-f]+:[   ]+35459073[     ]+csrw[  ]+miph,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]+:[   ]+35202573[     ]+csrr[  ]+a0,mireg2
>     +[      ]+[0-9a-f]+:[   ]+35259073[     ]+csrw[  ]+mireg2,a1
>     +[      ]+[0-9a-f]+:[   ]+35302573[     ]+csrr[  ]+a0,mireg3
>     +[      ]+[0-9a-f]+:[   ]+35359073[     ]+csrw[  ]+mireg3,a1
>     +[      ]+[0-9a-f]+:[   ]+35502573[     ]+csrr[  ]+a0,mireg4
>     +[      ]+[0-9a-f]+:[   ]+35559073[     ]+csrw[  ]+mireg4,a1
>     +[      ]+[0-9a-f]+:[   ]+35602573[     ]+csrr[  ]+a0,mireg5
>     +[      ]+[0-9a-f]+:[   ]+35659073[     ]+csrw[  ]+mireg5,a1
>     +[      ]+[0-9a-f]+:[   ]+35702573[     ]+csrr[  ]+a0,mireg6
>     +[      ]+[0-9a-f]+:[   ]+35759073[     ]+csrw[  ]+mireg6,a1
>      [      ]+[0-9a-f]+:[   ]+32102573[     ]+csrr[  ]+a0,mcyclecfg
>      [      ]+[0-9a-f]+:[   ]+32159073[     ]+csrw[  ]+mcyclecfg,a1
>      [      ]+[0-9a-f]+:[   ]+32202573[     ]+csrr[  ]+a0,minstretcfg
>     @@ -713,6 +727,34 @@ Disassembly of section .text:
>      [      ]+[0-9a-f]+:[   ]+21459073[     ]+csrw[  ]+vsieh,a1
>      [      ]+[0-9a-f]+:[   ]+25402573[     ]+csrr[  ]+a0,vsiph
>      [      ]+[0-9a-f]+:[   ]+25459073[     ]+csrw[  ]+vsiph,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]+:[   ]+15202573[     ]+csrr[  ]+a0,sireg2
>     +[      ]+[0-9a-f]+:[   ]+15259073[     ]+csrw[  ]+sireg2,a1
>     +[      ]+[0-9a-f]+:[   ]+15302573[     ]+csrr[  ]+a0,sireg3
>     +[      ]+[0-9a-f]+:[   ]+15359073[     ]+csrw[  ]+sireg3,a1
>     +[      ]+[0-9a-f]+:[   ]+15502573[     ]+csrr[  ]+a0,sireg4
>     +[      ]+[0-9a-f]+:[   ]+15559073[     ]+csrw[  ]+sireg4,a1
>     +[      ]+[0-9a-f]+:[   ]+15602573[     ]+csrr[  ]+a0,sireg5
>     +[      ]+[0-9a-f]+:[   ]+15659073[     ]+csrw[  ]+sireg5,a1
>     +[      ]+[0-9a-f]+:[   ]+15702573[     ]+csrr[  ]+a0,sireg6
>     +[      ]+[0-9a-f]+:[   ]+15759073[     ]+csrw[  ]+sireg6,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]+:[   ]+25202573[     ]+csrr[  ]+a0,vsireg2
>     +[      ]+[0-9a-f]+:[   ]+25259073[     ]+csrw[  ]+vsireg2,a1
>     +[      ]+[0-9a-f]+:[   ]+25302573[     ]+csrr[  ]+a0,vsireg3
>     +[      ]+[0-9a-f]+:[   ]+25359073[     ]+csrw[  ]+vsireg3,a1
>     +[      ]+[0-9a-f]+:[   ]+25502573[     ]+csrr[  ]+a0,vsireg4
>     +[      ]+[0-9a-f]+:[   ]+25559073[     ]+csrw[  ]+vsireg4,a1
>     +[      ]+[0-9a-f]+:[   ]+25602573[     ]+csrr[  ]+a0,vsireg5
>     +[      ]+[0-9a-f]+:[   ]+25659073[     ]+csrw[  ]+vsireg5,a1
>     +[      ]+[0-9a-f]+:[   ]+25702573[     ]+csrr[  ]+a0,vsireg6
>     +[      ]+[0-9a-f]+:[   ]+25759073[     ]+csrw[  ]+vsireg6,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 b83a0012004..81a7aba25c8 100644
>     --- a/gas/testsuite/gas/riscv/csr-version-1p12.l
>     +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
>     @@ -543,13 +543,13 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsatp', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `miselect', needs `smaia' extension
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `miselect', needs `smaia' extension
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `mireg', needs `smaia' extension
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `mireg', needs `smaia' extension
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `mtopei', needs `smaia' extension
>      .*Info: macro .*
>     @@ -609,6 +609,34 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `miph', needs `smaia' extension
>      .*Info: macro .*
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `miselect', needs `smaia or smcsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg2', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg2', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg3', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg3', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg4', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg4', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg5', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg5', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg6', needs `smcsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `mireg6', needs `smcsrind' extension
>     +.*Info: macro .*
>      .*Warning: invalid CSR `mcyclecfg', needs `smcntrpmf' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `mcyclecfg', needs `smcntrpmf' extension
>     @@ -777,13 +805,13 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `siselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `siselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `sireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `sireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `stopei', needs `ssaia' extension
>      .*Info: macro .*
>     @@ -845,19 +873,19 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsiselect', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsiselect', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsiselect', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsireg', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsireg', needs `h' extension
>      .*Info: macro .*
>     -.*Warning: invalid CSR `vsireg', needs `ssaia' extension
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `vstopei', needs `h' extension
>      .*Info: macro .*
>     @@ -961,6 +989,90 @@
>      .*Info: macro .*
>      .*Warning: invalid CSR `vsiph', needs `ssaia' extension
>      .*Info: macro .*
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `sireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind'
>     extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg2', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg3', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg4', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg5', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `h' extension
>     +.*Info: macro .*
>     +.*Warning: invalid CSR `vsireg6', needs `sscsrind' extension
>     +.*Info: macro .*
>      .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>      .*Info: macro .*
>      .*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
>     diff --git a/gas/testsuite/gas/riscv/csr.s
>     b/gas/testsuite/gas/riscv/csr.s
>     index 42bb158547b..378caef35b0 100644
>     --- a/gas/testsuite/gas/riscv/csr.s
>     +++ b/gas/testsuite/gas/riscv/csr.s
>     @@ -350,6 +350,15 @@
>             csr mviph
>             csr miph
>
>     +       # Smcsrind
>     +       csr miselect
>     +       csr mireg
>     +       csr mireg2
>     +       csr mireg3
>     +       csr mireg4
>     +       csr mireg5
>     +       csr mireg6
>     +
>             # Smcntrpmf extension
>             csr mcyclecfg
>             csr minstretcfg
>     @@ -401,6 +410,22 @@
>             csr vsieh
>             csr vsiph
>
>     +       # Sscsrind
>     +       csr siselect
>     +       csr sireg
>     +       csr sireg2
>     +       csr sireg3
>     +       csr sireg4
>     +       csr sireg5
>     +       csr sireg6
>     +       csr vsiselect
>     +       csr vsireg
>     +       csr vsireg2
>     +       csr vsireg3
>     +       csr vsireg4
>     +       csr vsireg5
>     +       csr vsireg6
>     +
>             # Sscofpmf extension
>             csr scountovf
>             csr mhpmevent3h
>     diff --git a/gas/testsuite/gas/riscv/march-help.l
>     b/gas/testsuite/gas/riscv/march-help.l
>     index c5754837e05..7233f85c26b 100644
>     --- a/gas/testsuite/gas/riscv/march-help.l
>     +++ b/gas/testsuite/gas/riscv/march-help.l
>     @@ -92,10 +92,12 @@ All available -march extensions for RISC-V:
>             zcd                                     1.0
>             zcmp                                    1.0
>             smaia                                   1.0
>     +       smcsrind                                1.0
>             smcntrpmf                               1.0
>             smepmp                                  1.0
>             smstateen                               1.0
>             ssaia                                   1.0
>     +       sscsrind                                1.0
>             sscofpmf                                1.0
>             ssstateen                               1.0
>             sstc                                    1.0
>     diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
>     index ae14e14d427..b06e4266dce 100644
>     --- a/include/opcode/riscv-opc.h
>     +++ b/include/opcode/riscv-opc.h
>     @@ -3399,6 +3399,12 @@
>      #define CSR_MVIENH   0x318
>      #define CSR_MVIPH    0x319
>      #define CSR_MIPH     0x354
>     +/*Smcsrind extension */
>     +#define CSR_MIREG2    0x352
>     +#define CSR_MIREG3    0x353
>     +#define CSR_MIREG4    0x355
>     +#define CSR_MIREG5    0x356
>     +#define CSR_MIREG6    0x357
>      /* Smcntrpmf extension.  */
>      #define CSR_MCYCLECFG    0x321
>      #define CSR_MINSTRETCFG  0x322
>     @@ -3447,6 +3453,17 @@
>      #define CSR_HVIPRIO2H 0x657
>      #define CSR_VSIEH     0x214
>      #define CSR_VSIPH     0x254
>     +/* Sscsrind extension */
>     +#define CSR_SIREG2    0x152
>     +#define CSR_SIREG3    0x153
>     +#define CSR_SIREG4    0x155
>     +#define CSR_SIREG5    0x156
>     +#define CSR_SIREG6    0x157
>     +#define CSR_VSIREG2    0x252
>     +#define CSR_VSIREG3    0x253
>     +#define CSR_VSIREG4    0x255
>     +#define CSR_VSIREG5    0x256
>     +#define CSR_VSIREG6    0x257
>      /* Sscofpmf extension */
>      #define CSR_SCOUNTOVF 0xda0
>      #define CSR_MHPMEVENT3H 0x723
>     @@ -4402,8 +4419,8 @@ DECLARE_CSR(vstval, CSR_VSTVAL, CSR_CLASS_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLA
>      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(miselect, CSR_MISELECT, CSR_CLASS_SMAIA_OR_SMCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(mireg, CSR_MIREG, CSR_CLASS_SMAIA_OR_SMCSRIND,
>     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)
>     @@ -4413,6 +4430,12 @@ DECLARE_CSR(mieh, CSR_MIEH,
>     CSR_CLASS_SMAIA_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_
>      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)
>     +/* Smcsrind extension */
>     +DECLARE_CSR(mireg2, CSR_MIREG2, CSR_CLASS_SMCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(mireg3, CSR_MIREG3, CSR_CLASS_SMCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(mireg4, CSR_MIREG4, CSR_CLASS_SMCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(mireg5, CSR_MIREG5, CSR_CLASS_SMCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(mireg6, CSR_MIREG6, CSR_CLASS_SMCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>      /* Smcntrpmf extension (incompatible with the privileged spec
>     v1.9.1).  */
>      DECLARE_CSR(mcyclecfg, CSR_MCYCLECFG, CSR_CLASS_SMCNTRPMF,
>     PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
>      DECLARE_CSR(minstretcfg, CSR_MINSTRETCFG, CSR_CLASS_SMCNTRPMF,
>     PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
>     @@ -4440,8 +4463,8 @@ DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H,
>     CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_
>      DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H,
>     CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE,
>     PRIV_SPEC_CLASS_NONE)
>      DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H,
>     CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE,
>     PRIV_SPEC_CLASS_NONE)
>      /* Ssaia extension */
>     -DECLARE_CSR(siselect, CSR_SISELECT, CSR_CLASS_SSAIA,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     -DECLARE_CSR(sireg, CSR_SIREG, CSR_CLASS_SSAIA,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(siselect, CSR_SISELECT, CSR_CLASS_SSAIA_OR_SSCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(sireg, CSR_SIREG, CSR_CLASS_SSAIA_OR_SSCSRIND,
>     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)
>     @@ -4450,8 +4473,8 @@ DECLARE_CSR(hvien, CSR_HVIEN,
>     CSR_CLASS_SSAIA_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_
>      DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SSAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>      DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SSAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>      DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SSAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     -DECLARE_CSR(vsiselect, CSR_VSISELECT, CSR_CLASS_SSAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     -DECLARE_CSR(vsireg, CSR_VSIREG, CSR_CLASS_SSAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(vsiselect, CSR_VSISELECT,
>     CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H, PRIV_SPEC_CLASS_NONE,
>     PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(vsireg, CSR_VSIREG,
>     CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H, PRIV_SPEC_CLASS_NONE,
>     PRIV_SPEC_CLASS_NONE)
>      DECLARE_CSR(vstopei, CSR_VSTOPEI, CSR_CLASS_SSAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>      DECLARE_CSR(vstopi, CSR_VSTOPI, CSR_CLASS_SSAIA_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>      DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SSAIA_AND_H_32,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     @@ -4461,6 +4484,17 @@ DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H,
>     CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_
>      DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SSAIA_AND_H_32,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>      DECLARE_CSR(vsieh, CSR_VSIEH, CSR_CLASS_SSAIA_AND_H_32,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>      DECLARE_CSR(vsiph, CSR_VSIPH, CSR_CLASS_SSAIA_AND_H_32,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +/* Smcsrind extension */
>     +DECLARE_CSR(sireg2, CSR_SIREG2, CSR_CLASS_SSCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(sireg3, CSR_SIREG3, CSR_CLASS_SSCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(sireg4, CSR_SIREG4, CSR_CLASS_SSCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(sireg5, CSR_SIREG5, CSR_CLASS_SSCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(sireg6, CSR_SIREG6, CSR_CLASS_SSCSRIND,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(vsireg2, CSR_VSIREG2, CSR_CLASS_SSCSRIND_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(vsireg3, CSR_VSIREG3, CSR_CLASS_SSCSRIND_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(vsireg4, CSR_VSIREG4, CSR_CLASS_SSCSRIND_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(vsireg5, CSR_VSIREG5, CSR_CLASS_SSCSRIND_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     +DECLARE_CSR(vsireg6, CSR_VSIREG6, CSR_CLASS_SSCSRIND_AND_H,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>      /* Sscofpmf extension */
>      DECLARE_CSR(scountovf, CSR_SCOUNTOVF, CSR_CLASS_SSCOFPMF,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>      DECLARE_CSR(mhpmevent3h, CSR_MHPMEVENT3H, CSR_CLASS_SSCOFPMF_32,
>     PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
>     -- 
>     2.25.1
>

  reply	other threads:[~2024-06-06 12:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-05  3:59 Jiawei
2024-06-06  3:05 ` Nelson Chu
2024-06-06 12:34   ` Jiawei [this message]
2024-06-10  6:45 ` Jan Beulich
2024-06-10 14:52   ` Jiawei

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=69f8395e-380f-4cef-b24d-121777948be5@iscas.ac.cn \
    --to=jiawei@iscas.ac.cn \
    --cc=binutils@sourceware.org \
    --cc=jbeulich@suse.com \
    --cc=jeffreyalaw@gmail.com \
    --cc=kito.cheng@gmail.com \
    --cc=nelson@rivosinc.com \
    --cc=palmer@dabbelt.com \
    /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).