From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cstnet.cn (smtp21.cstnet.cn [159.226.251.21]) by sourceware.org (Postfix) with ESMTPS id 3A50B38FEF41 for ; Thu, 6 Jun 2024 12:34:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3A50B38FEF41 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=iscas.ac.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=iscas.ac.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3A50B38FEF41 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=159.226.251.21 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717677311; cv=none; b=hnskG9+QPs/vsATMr7XyGIdbAApjUqXi6XqtQK84dCBi+NGGlcetRrpW4ITqHWZSnKqYynVZJqudOe/NFU4D0b9rGFEZe9j002ROUv8VnPhvGFbun3aoKvHVZOBRVKzxlXhIh7m0kv8u+ZTCC4eGtghFtmlWhNiKI+FzhtLyWhA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717677311; c=relaxed/simple; bh=3ofzRKQFxVsJYp/n+0kxo8S6asDn6Cz6Mm9JvCk6YIM=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=eCE5hT8XIv9Py7l/hnem+5g97WNfosQKTxsWmPZz6rYN+hKXnpdAhyM3bFadfDhAdAEagbjE5/eBv2RMvhhysKI9PhLQGU1O7PVbBlNcyeddXI3eNPGLCv3aNRY+psCnMTfOPkdlXz+9VgYXc07/iKXyR6qdEM/AZtFzn8FN68Y= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from [192.168.0.106] (unknown [157.0.80.212]) by APP-01 (Coremail) with SMTP id qwCowACnrxPnrGFmJZGnCQ--.6973S2; Thu, 06 Jun 2024 20:34:49 +0800 (CST) Content-Type: multipart/alternative; boundary="------------qS7Ktr826IXzI8AcEnfh3XQA" Message-ID: <69f8395e-380f-4cef-b24d-121777948be5@iscas.ac.cn> Date: Thu, 6 Jun 2024 20:34:47 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] RISC-V: Support Smcsrind/Sscsrind extensions csrs. To: Nelson Chu Cc: binutils@sourceware.org, kito.cheng@gmail.com, palmer@dabbelt.com, jeffreyalaw@gmail.com, jbeulich@suse.com References: <20240605035916.820580-1-jiawei@iscas.ac.cn> From: Jiawei Organization: PLCT In-Reply-To: X-CM-TRANSID:qwCowACnrxPnrGFmJZGnCQ--.6973S2 X-Coremail-Antispam: 1UD129KBjvAXoWDXF48Wr1UKFy7WF1rGr4kWFg_yoW7Kr48Ko WxGw18AFyrX3ZrCw13Cr18Z3Z8Gw42qrs8Jry5uwn7X3yUtwsYq3yDKFZ8Kay5trWkCF4D C3yvqw1xXFyDtry5n29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UjIYCTnIWjp_UUU5e7k0a2IF6w4kM7kC6x804xWl14x267AKxVWUJVW8JwAFc2x0 x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj4 1l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26r1j6r1xM28EF7xvwVC0 I7IYx2IY6xkF7I0E14v26r4j6F4UM28EF7xvwVC2z280aVAFwI0_Cr1j6rxdM28EF7xvwV C2z280aVCY1x0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487McIj6xIIjxv2 0xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l74 80Y4vEI4kI2Ix0rVAqx4xJMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_ JrI_JrWlx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCI42IY6x IIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAI w20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x 0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjxUqWxRDUUUU X-Originating-IP: [157.0.80.212] X-CM-SenderInfo: 5mld4v3l6l2u1dvotugofq/1tbiCQ8AAGZhfqyIcgAAsp X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------qS7Ktr826IXzI8AcEnfh3XQA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 在 2024/6/6 11:05, Nelson Chu 写道: > > > On Wed, Jun 5, 2024 at 12:00 PM Jiawei 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 > --------------qS7Ktr826IXzI8AcEnfh3XQA--