From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-sender-0.a4lg.com (mail-sender.a4lg.com [153.120.152.154]) by sourceware.org (Postfix) with ESMTPS id 25F153858D28 for ; Tue, 29 Nov 2022 02:16:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 25F153858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=irq.a4lg.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=irq.a4lg.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 86DE8300089; Tue, 29 Nov 2022 02:16:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irq.a4lg.com; s=2017s01; t=1669688183; bh=I0phYTcVesfsBbIBYac+EIWS2mw4gWlKwNw2/OujFCQ=; h=Message-ID:Date:Mime-Version:Subject:To:References:From: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=gN6ELBiDJnTkM+n7Y+5fwyUtuAsQWIfaAA7jn2z30qXre4smZlDqm1+7Db+y71t/e cLPAQ//1v/rOArHLz3hpMR5ZM0eSSoBP/S1jbviXOFLPv5nqPY1URsFflEP11XsAdh r7DZjpyuVd6fEruWfpGeHQ0dc4GMaBKBbxmefCW0= Message-ID: <19959ea1-70de-c13b-9682-271ac070bb2c@irq.a4lg.com> Date: Tue, 29 Nov 2022 11:16:21 +0900 Mime-Version: 1.0 Subject: Re: [REVIEW ONLY 1/1] UNRATIFIED RISC-V: Add 'Smclic' extension and its CSRs To: Palmer Dabbelt , binutils@sourceware.org References: Content-Language: en-US From: Tsukasa OI In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,TXREP 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: On 2022/11/29 11:03, Palmer Dabbelt wrote: > On Mon, 28 Nov 2022 17:19:53 PST (-0800), binutils@sourceware.org wrote: >> From: Tsukasa OI >> >> [DO NOT MERGE] >> Until 'Smclic' extension is frozen/ratified and final version number is >> determined, this patch should not be merged upstream. This commit uses >> unratified version 0.9 as in the documentation (instead of possible 1.0 >> after ratification). >> >> [RFC] >> It implements u* CSRs as supported in all privileged architectures. >> Since user-mode interrupt is dropped, we might need to mask or remove them. > > Looks like there's some issues related to these, though it's not super > clear what the plan is > . Probably > best to just wait until it's frozen to sort that out? Yes, that's probably the best idea. This is based on a document in the "Development" state but even "Stable" documents have a difference: the one very likely to change before ratification and the one not so likely to change. For instance, I consider that "RISC-V Profiles" documentation likely to change before ratification [including extension names that we toolchain developers consider important]. That's why I'm not committing RISC-V Profiles-related changes except 'Ssstateen' (this is discussed even outside the profiles). Additional reference: Tsukasa > >> >> This commit adds CSR support for the 'Smclic' extension, a part of Core- >> Local Interrupt Controller (CLIC) extension. >> >> This is based on the latest Core-Local Interrupt Controller (CLIC) >> extension draft (version 0.9-draft): >> >> >> bfd/ChangeLog: >> >> * elfxx-riscv.c (riscv_implicit_subsets): Add implication from >> 'Smclic' to 'Zicsr'. (riscv_supported_std_s_ext) Add 'Smclic'. >> >> gas/ChangeLog: >> >> * config/tc-riscv.c (enum riscv_csr_class): Add new CSR class. >> (riscv_csr_address): Add new CSR class handling. >> * testsuite/gas/riscv/csr.s: Add new CSR test. >> * testsuite/gas/riscv/csr-dw-regnums.s: Likewise. >> * testsuite/gas/riscv/csr-dw-regnums.d: Likewise. >> * testsuite/gas/riscv/csr-version-1p9p1.d: Likewise. >> * testsuite/gas/riscv/csr-version-1p9p1.l: Likewise. >> * testsuite/gas/riscv/csr-version-1p10.d: Likewise. >> * testsuite/gas/riscv/csr-version-1p10.l: Likewise. >> * testsuite/gas/riscv/csr-version-1p11.d: Likewise. >> * testsuite/gas/riscv/csr-version-1p11.l: Likewise. >> * testsuite/gas/riscv/csr-version-1p12.d: Likewise. >> * testsuite/gas/riscv/csr-version-1p12.l: Likewise. >> >> include/ChangeLog: >> >> * opcode/riscv-opc.h (CSR_MTVT, CSR_MNXTI, CSR_MINTSTATUS, >> CSR_MINTTHRESH, CSR_MSCRATCHCSW, CSR_MSCRATCHCSWL, CSR_STVT, >> CSR_SNXTI, CSR_SINTSTATUS, CSR_SINTTHRESH, CSR_SSCRATCHCSW, >> CSR_SSCRATCHCSWL, CSR_UTVT, CSR_UNXTI, CSR_UINTSTATUS, >> CSR_UINTTHRESH, CSR_USCRATCHCSW, CSR_USCRATCHCSWL): New. >> --- >> bfd/elfxx-riscv.c | 2 ++ >> gas/config/tc-riscv.c | 4 +++ >> gas/testsuite/gas/riscv/csr-dw-regnums.d | 18 ++++++++++ >> gas/testsuite/gas/riscv/csr-dw-regnums.s | 19 ++++++++++ >> gas/testsuite/gas/riscv/csr-version-1p10.d | 36 +++++++++++++++++++ >> gas/testsuite/gas/riscv/csr-version-1p10.l | 39 +++++++++++++++++++++ >> gas/testsuite/gas/riscv/csr-version-1p11.d | 36 +++++++++++++++++++ >> gas/testsuite/gas/riscv/csr-version-1p11.l | 39 +++++++++++++++++++++ >> gas/testsuite/gas/riscv/csr-version-1p12.d | 36 +++++++++++++++++++ >> gas/testsuite/gas/riscv/csr-version-1p12.l | 39 +++++++++++++++++++++ >> gas/testsuite/gas/riscv/csr-version-1p9p1.d | 36 +++++++++++++++++++ >> gas/testsuite/gas/riscv/csr-version-1p9p1.l | 39 +++++++++++++++++++++ >> gas/testsuite/gas/riscv/csr.s | 20 +++++++++++ >> include/opcode/riscv-opc.h | 38 ++++++++++++++++++++ >> 14 files changed, 401 insertions(+) >> >> diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c >> index 0bcf2fdcfa34..6c60cf7c888e 100644 >> --- a/bfd/elfxx-riscv.c >> +++ b/bfd/elfxx-riscv.c >> @@ -1103,6 +1103,7 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = >> {"zks", "zksh", check_implicit_always}, >> {"smaia", "ssaia", check_implicit_always}, >> {"smstateen", "ssstateen", check_implicit_always}, >> + {"smclic", "zicsr", check_implicit_always}, >> {"smepmp", "zicsr", check_implicit_always}, >> {"ssaia", "zicsr", check_implicit_always}, >> {"sscofpmf", "zicsr", check_implicit_always}, >> @@ -1224,6 +1225,7 @@ 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 }, >> + {"smclic", ISA_SPEC_CLASS_DRAFT, 0, 9, 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 }, >> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c >> index 0682eb355241..e90e0ba53987 100644 >> --- a/gas/config/tc-riscv.c >> +++ b/gas/config/tc-riscv.c >> @@ -74,6 +74,7 @@ enum riscv_csr_class >> CSR_CLASS_H_32, /* hypervisor, rv32 only */ >> CSR_CLASS_SMAIA, /* Smaia */ >> CSR_CLASS_SMAIA_32, /* Smaia, rv32 only */ >> + CSR_CLASS_SMCLIC, /* Smclic only */ >> CSR_CLASS_SMSTATEEN, /* Smstateen only */ >> CSR_CLASS_SMSTATEEN_32, /* Smstateen RV32 only */ >> CSR_CLASS_SSAIA, /* Ssaia */ >> @@ -1049,6 +1050,9 @@ riscv_csr_address (const char *csr_name, >> case CSR_CLASS_SMAIA: >> extension = "smaia"; >> break; >> + case CSR_CLASS_SMCLIC: >> + extension = "smclic"; >> + break; >> case CSR_CLASS_SMSTATEEN: >> case CSR_CLASS_SMSTATEEN_32: >> is_rv32_only = (csr_class == CSR_CLASS_SMSTATEEN_32); >> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d b/gas/testsuite/gas/riscv/csr-dw-regnums.d >> index fd830666ab89..2b58c6a955b1 100644 >> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d >> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d >> @@ -324,6 +324,24 @@ Contents of the .* section: >> DW_CFA_offset_extended_sf: r4888 \(mvienh\) at cfa\+3168 >> DW_CFA_offset_extended_sf: r4889 \(mviph\) at cfa\+3172 >> DW_CFA_offset_extended_sf: r4948 \(miph\) at cfa\+3408 >> + DW_CFA_offset_extended_sf: r4871 \(mtvt\) at cfa\+3100 >> + DW_CFA_offset_extended_sf: r4933 \(mnxti\) at cfa\+3348 >> + DW_CFA_offset_extended_sf: r8006 \(mintstatus\) at cfa\+15640 >> + DW_CFA_offset_extended_sf: r4935 \(mintthresh\) at cfa\+3356 >> + DW_CFA_offset_extended_sf: r4936 \(mscratchcsw\) at cfa\+3360 >> + DW_CFA_offset_extended_sf: r4937 \(mscratchcswl\) at cfa\+3364 >> + DW_CFA_offset_extended_sf: r4359 \(stvt\) at cfa\+1052 >> + DW_CFA_offset_extended_sf: r4421 \(snxti\) at cfa\+1300 >> + DW_CFA_offset_extended_sf: r7494 \(sintstatus\) at cfa\+13592 >> + DW_CFA_offset_extended_sf: r4423 \(sintthresh\) at cfa\+1308 >> + DW_CFA_offset_extended_sf: r4424 \(sscratchcsw\) at cfa\+1312 >> + DW_CFA_offset_extended_sf: r4425 \(sscratchcswl\) at cfa\+1316 >> + DW_CFA_offset_extended_sf: r4103 \(utvt\) at cfa\+28 >> + DW_CFA_offset_extended_sf: r4165 \(unxti\) at cfa\+276 >> + DW_CFA_offset_extended_sf: r7238 \(uintstatus\) at cfa\+12568 >> + DW_CFA_offset_extended_sf: r4167 \(uintthresh\) at cfa\+284 >> + DW_CFA_offset_extended_sf: r4168 \(uscratchcsw\) at cfa\+288 >> + DW_CFA_offset_extended_sf: r4169 \(uscratchcswl\) at cfa\+292 >> DW_CFA_offset_extended_sf: r4876 \(mstateen0\) at cfa\+3120 >> DW_CFA_offset_extended_sf: r4877 \(mstateen1\) at cfa\+3124 >> DW_CFA_offset_extended_sf: r4878 \(mstateen2\) at cfa\+3128 >> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.s b/gas/testsuite/gas/riscv/csr-dw-regnums.s >> index b8b0f7902297..af1158eb0089 100644 >> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.s >> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.s >> @@ -321,6 +321,25 @@ _start: >> .cfi_offset mvienh, 3168 >> .cfi_offset mviph, 3172 >> .cfi_offset miph, 3408 >> + # Smclic extension >> + .cfi_offset mtvt, 3100 >> + .cfi_offset mnxti, 3348 >> + .cfi_offset mintstatus, 15640 >> + .cfi_offset mintthresh, 3356 >> + .cfi_offset mscratchcsw, 3360 >> + .cfi_offset mscratchcswl, 3364 >> + .cfi_offset stvt, 1052 >> + .cfi_offset snxti, 1300 >> + .cfi_offset sintstatus, 13592 >> + .cfi_offset sintthresh, 1308 >> + .cfi_offset sscratchcsw, 1312 >> + .cfi_offset sscratchcswl, 1316 >> + .cfi_offset utvt, 28 >> + .cfi_offset unxti, 276 >> + .cfi_offset uintstatus, 12568 >> + .cfi_offset uintthresh, 284 >> + .cfi_offset uscratchcsw, 288 >> + .cfi_offset uscratchcswl, 292 >> # Smstateen extension >> .cfi_offset mstateen0, 3120 >> .cfi_offset mstateen1, 3124 >> diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.d b/gas/testsuite/gas/riscv/csr-version-1p10.d >> index ee41e1025cce..aa116a75fadd 100644 >> --- a/gas/testsuite/gas/riscv/csr-version-1p10.d >> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d >> @@ -623,6 +623,42 @@ 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]+:[ ]+30702573[ ]+csrr[ ]+a0,mtvt >> +[ ]+[0-9a-f]+:[ ]+30759073[ ]+csrw[ ]+mtvt,a1 >> +[ ]+[0-9a-f]+:[ ]+34502573[ ]+csrr[ ]+a0,mnxti >> +[ ]+[0-9a-f]+:[ ]+34559073[ ]+csrw[ ]+mnxti,a1 >> +[ ]+[0-9a-f]+:[ ]+f4602573[ ]+csrr[ ]+a0,mintstatus >> +[ ]+[0-9a-f]+:[ ]+f4659073[ ]+csrw[ ]+mintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+34702573[ ]+csrr[ ]+a0,mintthresh >> +[ ]+[0-9a-f]+:[ ]+34759073[ ]+csrw[ ]+mintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+34802573[ ]+csrr[ ]+a0,mscratchcsw >> +[ ]+[0-9a-f]+:[ ]+34859073[ ]+csrw[ ]+mscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+34902573[ ]+csrr[ ]+a0,mscratchcswl >> +[ ]+[0-9a-f]+:[ ]+34959073[ ]+csrw[ ]+mscratchcswl,a1 >> +[ ]+[0-9a-f]+:[ ]+10702573[ ]+csrr[ ]+a0,stvt >> +[ ]+[0-9a-f]+:[ ]+10759073[ ]+csrw[ ]+stvt,a1 >> +[ ]+[0-9a-f]+:[ ]+14502573[ ]+csrr[ ]+a0,snxti >> +[ ]+[0-9a-f]+:[ ]+14559073[ ]+csrw[ ]+snxti,a1 >> +[ ]+[0-9a-f]+:[ ]+d4602573[ ]+csrr[ ]+a0,sintstatus >> +[ ]+[0-9a-f]+:[ ]+d4659073[ ]+csrw[ ]+sintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+14702573[ ]+csrr[ ]+a0,sintthresh >> +[ ]+[0-9a-f]+:[ ]+14759073[ ]+csrw[ ]+sintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+14802573[ ]+csrr[ ]+a0,sscratchcsw >> +[ ]+[0-9a-f]+:[ ]+14859073[ ]+csrw[ ]+sscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+14902573[ ]+csrr[ ]+a0,sscratchcswl >> +[ ]+[0-9a-f]+:[ ]+14959073[ ]+csrw[ ]+sscratchcswl,a1 >> +[ ]+[0-9a-f]+:[ ]+00702573[ ]+csrr[ ]+a0,utvt >> +[ ]+[0-9a-f]+:[ ]+00759073[ ]+csrw[ ]+utvt,a1 >> +[ ]+[0-9a-f]+:[ ]+04502573[ ]+csrr[ ]+a0,unxti >> +[ ]+[0-9a-f]+:[ ]+04559073[ ]+csrw[ ]+unxti,a1 >> +[ ]+[0-9a-f]+:[ ]+c4602573[ ]+csrr[ ]+a0,uintstatus >> +[ ]+[0-9a-f]+:[ ]+c4659073[ ]+csrw[ ]+uintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+04702573[ ]+csrr[ ]+a0,uintthresh >> +[ ]+[0-9a-f]+:[ ]+04759073[ ]+csrw[ ]+uintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+04802573[ ]+csrr[ ]+a0,uscratchcsw >> +[ ]+[0-9a-f]+:[ ]+04859073[ ]+csrw[ ]+uscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+04902573[ ]+csrr[ ]+a0,uscratchcswl >> +[ ]+[0-9a-f]+:[ ]+04959073[ ]+csrw[ ]+uscratchcswl,a1 >> [ ]+[0-9a-f]+:[ ]+30c02573[ ]+csrr[ ]+a0,mstateen0 >> [ ]+[0-9a-f]+:[ ]+30c59073[ ]+csrw[ ]+mstateen0,a1 >> [ ]+[0-9a-f]+:[ ]+30d02573[ ]+csrr[ ]+a0,mstateen1 >> diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas/riscv/csr-version-1p10.l >> index e677b78b8bb8..15431cef4590 100644 >> --- a/gas/testsuite/gas/riscv/csr-version-1p10.l >> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l >> @@ -444,6 +444,45 @@ >> .*Warning: invalid CSR `miph', needs `smaia' extension >> .*Warning: invalid CSR `miph', needs rv32i extension >> .*Warning: invalid CSR `miph', needs `smaia' extension >> +.*Warning: invalid CSR `mtvt', needs `smclic' extension >> +.*Warning: invalid CSR `mtvt', needs `smclic' extension >> +.*Warning: invalid CSR `mnxti', needs `smclic' extension >> +.*Warning: invalid CSR `mnxti', needs `smclic' extension >> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw mintstatus,a1' >> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `stvt', needs `smclic' extension >> +.*Warning: invalid CSR `stvt', needs `smclic' extension >> +.*Warning: invalid CSR `snxti', needs `smclic' extension >> +.*Warning: invalid CSR `snxti', needs `smclic' extension >> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw sintstatus,a1' >> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `utvt', needs `smclic' extension >> +.*Warning: invalid CSR `utvt', needs `smclic' extension >> +.*Warning: invalid CSR `unxti', needs `smclic' extension >> +.*Warning: invalid CSR `unxti', needs `smclic' extension >> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw uintstatus,a1' >> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension >> .*Warning: invalid CSR `mstateen0', needs `smstateen' extension >> .*Warning: invalid CSR `mstateen0', needs `smstateen' extension >> .*Warning: invalid CSR `mstateen1', needs `smstateen' extension >> diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.d b/gas/testsuite/gas/riscv/csr-version-1p11.d >> index a83b1bf68f98..c7af6b7cafac 100644 >> --- a/gas/testsuite/gas/riscv/csr-version-1p11.d >> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d >> @@ -623,6 +623,42 @@ 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]+:[ ]+30702573[ ]+csrr[ ]+a0,mtvt >> +[ ]+[0-9a-f]+:[ ]+30759073[ ]+csrw[ ]+mtvt,a1 >> +[ ]+[0-9a-f]+:[ ]+34502573[ ]+csrr[ ]+a0,mnxti >> +[ ]+[0-9a-f]+:[ ]+34559073[ ]+csrw[ ]+mnxti,a1 >> +[ ]+[0-9a-f]+:[ ]+f4602573[ ]+csrr[ ]+a0,mintstatus >> +[ ]+[0-9a-f]+:[ ]+f4659073[ ]+csrw[ ]+mintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+34702573[ ]+csrr[ ]+a0,mintthresh >> +[ ]+[0-9a-f]+:[ ]+34759073[ ]+csrw[ ]+mintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+34802573[ ]+csrr[ ]+a0,mscratchcsw >> +[ ]+[0-9a-f]+:[ ]+34859073[ ]+csrw[ ]+mscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+34902573[ ]+csrr[ ]+a0,mscratchcswl >> +[ ]+[0-9a-f]+:[ ]+34959073[ ]+csrw[ ]+mscratchcswl,a1 >> +[ ]+[0-9a-f]+:[ ]+10702573[ ]+csrr[ ]+a0,stvt >> +[ ]+[0-9a-f]+:[ ]+10759073[ ]+csrw[ ]+stvt,a1 >> +[ ]+[0-9a-f]+:[ ]+14502573[ ]+csrr[ ]+a0,snxti >> +[ ]+[0-9a-f]+:[ ]+14559073[ ]+csrw[ ]+snxti,a1 >> +[ ]+[0-9a-f]+:[ ]+d4602573[ ]+csrr[ ]+a0,sintstatus >> +[ ]+[0-9a-f]+:[ ]+d4659073[ ]+csrw[ ]+sintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+14702573[ ]+csrr[ ]+a0,sintthresh >> +[ ]+[0-9a-f]+:[ ]+14759073[ ]+csrw[ ]+sintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+14802573[ ]+csrr[ ]+a0,sscratchcsw >> +[ ]+[0-9a-f]+:[ ]+14859073[ ]+csrw[ ]+sscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+14902573[ ]+csrr[ ]+a0,sscratchcswl >> +[ ]+[0-9a-f]+:[ ]+14959073[ ]+csrw[ ]+sscratchcswl,a1 >> +[ ]+[0-9a-f]+:[ ]+00702573[ ]+csrr[ ]+a0,utvt >> +[ ]+[0-9a-f]+:[ ]+00759073[ ]+csrw[ ]+utvt,a1 >> +[ ]+[0-9a-f]+:[ ]+04502573[ ]+csrr[ ]+a0,unxti >> +[ ]+[0-9a-f]+:[ ]+04559073[ ]+csrw[ ]+unxti,a1 >> +[ ]+[0-9a-f]+:[ ]+c4602573[ ]+csrr[ ]+a0,uintstatus >> +[ ]+[0-9a-f]+:[ ]+c4659073[ ]+csrw[ ]+uintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+04702573[ ]+csrr[ ]+a0,uintthresh >> +[ ]+[0-9a-f]+:[ ]+04759073[ ]+csrw[ ]+uintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+04802573[ ]+csrr[ ]+a0,uscratchcsw >> +[ ]+[0-9a-f]+:[ ]+04859073[ ]+csrw[ ]+uscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+04902573[ ]+csrr[ ]+a0,uscratchcswl >> +[ ]+[0-9a-f]+:[ ]+04959073[ ]+csrw[ ]+uscratchcswl,a1 >> [ ]+[0-9a-f]+:[ ]+30c02573[ ]+csrr[ ]+a0,mstateen0 >> [ ]+[0-9a-f]+:[ ]+30c59073[ ]+csrw[ ]+mstateen0,a1 >> [ ]+[0-9a-f]+:[ ]+30d02573[ ]+csrr[ ]+a0,mstateen1 >> diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas/riscv/csr-version-1p11.l >> index 81ca86ca7bcc..94c3142c07ff 100644 >> --- a/gas/testsuite/gas/riscv/csr-version-1p11.l >> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l >> @@ -442,6 +442,45 @@ >> .*Warning: invalid CSR `miph', needs `smaia' extension >> .*Warning: invalid CSR `miph', needs rv32i extension >> .*Warning: invalid CSR `miph', needs `smaia' extension >> +.*Warning: invalid CSR `mtvt', needs `smclic' extension >> +.*Warning: invalid CSR `mtvt', needs `smclic' extension >> +.*Warning: invalid CSR `mnxti', needs `smclic' extension >> +.*Warning: invalid CSR `mnxti', needs `smclic' extension >> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw mintstatus,a1' >> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `stvt', needs `smclic' extension >> +.*Warning: invalid CSR `stvt', needs `smclic' extension >> +.*Warning: invalid CSR `snxti', needs `smclic' extension >> +.*Warning: invalid CSR `snxti', needs `smclic' extension >> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw sintstatus,a1' >> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `utvt', needs `smclic' extension >> +.*Warning: invalid CSR `utvt', needs `smclic' extension >> +.*Warning: invalid CSR `unxti', needs `smclic' extension >> +.*Warning: invalid CSR `unxti', needs `smclic' extension >> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw uintstatus,a1' >> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension >> .*Warning: invalid CSR `mstateen0', needs `smstateen' extension >> .*Warning: invalid CSR `mstateen0', needs `smstateen' extension >> .*Warning: invalid CSR `mstateen1', needs `smstateen' extension >> diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.d b/gas/testsuite/gas/riscv/csr-version-1p12.d >> index 612aac280768..357f9ae1a626 100644 >> --- a/gas/testsuite/gas/riscv/csr-version-1p12.d >> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d >> @@ -623,6 +623,42 @@ 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]+:[ ]+30702573[ ]+csrr[ ]+a0,mtvt >> +[ ]+[0-9a-f]+:[ ]+30759073[ ]+csrw[ ]+mtvt,a1 >> +[ ]+[0-9a-f]+:[ ]+34502573[ ]+csrr[ ]+a0,mnxti >> +[ ]+[0-9a-f]+:[ ]+34559073[ ]+csrw[ ]+mnxti,a1 >> +[ ]+[0-9a-f]+:[ ]+f4602573[ ]+csrr[ ]+a0,mintstatus >> +[ ]+[0-9a-f]+:[ ]+f4659073[ ]+csrw[ ]+mintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+34702573[ ]+csrr[ ]+a0,mintthresh >> +[ ]+[0-9a-f]+:[ ]+34759073[ ]+csrw[ ]+mintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+34802573[ ]+csrr[ ]+a0,mscratchcsw >> +[ ]+[0-9a-f]+:[ ]+34859073[ ]+csrw[ ]+mscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+34902573[ ]+csrr[ ]+a0,mscratchcswl >> +[ ]+[0-9a-f]+:[ ]+34959073[ ]+csrw[ ]+mscratchcswl,a1 >> +[ ]+[0-9a-f]+:[ ]+10702573[ ]+csrr[ ]+a0,stvt >> +[ ]+[0-9a-f]+:[ ]+10759073[ ]+csrw[ ]+stvt,a1 >> +[ ]+[0-9a-f]+:[ ]+14502573[ ]+csrr[ ]+a0,snxti >> +[ ]+[0-9a-f]+:[ ]+14559073[ ]+csrw[ ]+snxti,a1 >> +[ ]+[0-9a-f]+:[ ]+d4602573[ ]+csrr[ ]+a0,sintstatus >> +[ ]+[0-9a-f]+:[ ]+d4659073[ ]+csrw[ ]+sintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+14702573[ ]+csrr[ ]+a0,sintthresh >> +[ ]+[0-9a-f]+:[ ]+14759073[ ]+csrw[ ]+sintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+14802573[ ]+csrr[ ]+a0,sscratchcsw >> +[ ]+[0-9a-f]+:[ ]+14859073[ ]+csrw[ ]+sscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+14902573[ ]+csrr[ ]+a0,sscratchcswl >> +[ ]+[0-9a-f]+:[ ]+14959073[ ]+csrw[ ]+sscratchcswl,a1 >> +[ ]+[0-9a-f]+:[ ]+00702573[ ]+csrr[ ]+a0,utvt >> +[ ]+[0-9a-f]+:[ ]+00759073[ ]+csrw[ ]+utvt,a1 >> +[ ]+[0-9a-f]+:[ ]+04502573[ ]+csrr[ ]+a0,unxti >> +[ ]+[0-9a-f]+:[ ]+04559073[ ]+csrw[ ]+unxti,a1 >> +[ ]+[0-9a-f]+:[ ]+c4602573[ ]+csrr[ ]+a0,uintstatus >> +[ ]+[0-9a-f]+:[ ]+c4659073[ ]+csrw[ ]+uintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+04702573[ ]+csrr[ ]+a0,uintthresh >> +[ ]+[0-9a-f]+:[ ]+04759073[ ]+csrw[ ]+uintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+04802573[ ]+csrr[ ]+a0,uscratchcsw >> +[ ]+[0-9a-f]+:[ ]+04859073[ ]+csrw[ ]+uscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+04902573[ ]+csrr[ ]+a0,uscratchcswl >> +[ ]+[0-9a-f]+:[ ]+04959073[ ]+csrw[ ]+uscratchcswl,a1 >> [ ]+[0-9a-f]+:[ ]+30c02573[ ]+csrr[ ]+a0,mstateen0 >> [ ]+[0-9a-f]+:[ ]+30c59073[ ]+csrw[ ]+mstateen0,a1 >> [ ]+[0-9a-f]+:[ ]+30d02573[ ]+csrr[ ]+a0,mstateen1 >> diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas/riscv/csr-version-1p12.l >> index 1c0bb4ef2d8f..1655fe4ce833 100644 >> --- a/gas/testsuite/gas/riscv/csr-version-1p12.l >> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l >> @@ -304,6 +304,45 @@ >> .*Warning: invalid CSR `miph', needs `smaia' extension >> .*Warning: invalid CSR `miph', needs rv32i extension >> .*Warning: invalid CSR `miph', needs `smaia' extension >> +.*Warning: invalid CSR `mtvt', needs `smclic' extension >> +.*Warning: invalid CSR `mtvt', needs `smclic' extension >> +.*Warning: invalid CSR `mnxti', needs `smclic' extension >> +.*Warning: invalid CSR `mnxti', needs `smclic' extension >> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw mintstatus,a1' >> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `stvt', needs `smclic' extension >> +.*Warning: invalid CSR `stvt', needs `smclic' extension >> +.*Warning: invalid CSR `snxti', needs `smclic' extension >> +.*Warning: invalid CSR `snxti', needs `smclic' extension >> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw sintstatus,a1' >> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `utvt', needs `smclic' extension >> +.*Warning: invalid CSR `utvt', needs `smclic' extension >> +.*Warning: invalid CSR `unxti', needs `smclic' extension >> +.*Warning: invalid CSR `unxti', needs `smclic' extension >> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw uintstatus,a1' >> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension >> .*Warning: invalid CSR `mstateen0', needs `smstateen' extension >> .*Warning: invalid CSR `mstateen0', needs `smstateen' extension >> .*Warning: invalid CSR `mstateen1', needs `smstateen' extension >> diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.d b/gas/testsuite/gas/riscv/csr-version-1p9p1.d >> index 0fe849c269c2..8688fa6ecb7e 100644 >> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d >> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d >> @@ -623,6 +623,42 @@ 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]+:[ ]+30702573[ ]+csrr[ ]+a0,mtvt >> +[ ]+[0-9a-f]+:[ ]+30759073[ ]+csrw[ ]+mtvt,a1 >> +[ ]+[0-9a-f]+:[ ]+34502573[ ]+csrr[ ]+a0,mnxti >> +[ ]+[0-9a-f]+:[ ]+34559073[ ]+csrw[ ]+mnxti,a1 >> +[ ]+[0-9a-f]+:[ ]+f4602573[ ]+csrr[ ]+a0,mintstatus >> +[ ]+[0-9a-f]+:[ ]+f4659073[ ]+csrw[ ]+mintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+34702573[ ]+csrr[ ]+a0,mintthresh >> +[ ]+[0-9a-f]+:[ ]+34759073[ ]+csrw[ ]+mintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+34802573[ ]+csrr[ ]+a0,mscratchcsw >> +[ ]+[0-9a-f]+:[ ]+34859073[ ]+csrw[ ]+mscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+34902573[ ]+csrr[ ]+a0,mscratchcswl >> +[ ]+[0-9a-f]+:[ ]+34959073[ ]+csrw[ ]+mscratchcswl,a1 >> +[ ]+[0-9a-f]+:[ ]+10702573[ ]+csrr[ ]+a0,stvt >> +[ ]+[0-9a-f]+:[ ]+10759073[ ]+csrw[ ]+stvt,a1 >> +[ ]+[0-9a-f]+:[ ]+14502573[ ]+csrr[ ]+a0,snxti >> +[ ]+[0-9a-f]+:[ ]+14559073[ ]+csrw[ ]+snxti,a1 >> +[ ]+[0-9a-f]+:[ ]+d4602573[ ]+csrr[ ]+a0,sintstatus >> +[ ]+[0-9a-f]+:[ ]+d4659073[ ]+csrw[ ]+sintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+14702573[ ]+csrr[ ]+a0,sintthresh >> +[ ]+[0-9a-f]+:[ ]+14759073[ ]+csrw[ ]+sintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+14802573[ ]+csrr[ ]+a0,sscratchcsw >> +[ ]+[0-9a-f]+:[ ]+14859073[ ]+csrw[ ]+sscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+14902573[ ]+csrr[ ]+a0,sscratchcswl >> +[ ]+[0-9a-f]+:[ ]+14959073[ ]+csrw[ ]+sscratchcswl,a1 >> +[ ]+[0-9a-f]+:[ ]+00702573[ ]+csrr[ ]+a0,utvt >> +[ ]+[0-9a-f]+:[ ]+00759073[ ]+csrw[ ]+utvt,a1 >> +[ ]+[0-9a-f]+:[ ]+04502573[ ]+csrr[ ]+a0,unxti >> +[ ]+[0-9a-f]+:[ ]+04559073[ ]+csrw[ ]+unxti,a1 >> +[ ]+[0-9a-f]+:[ ]+c4602573[ ]+csrr[ ]+a0,uintstatus >> +[ ]+[0-9a-f]+:[ ]+c4659073[ ]+csrw[ ]+uintstatus,a1 >> +[ ]+[0-9a-f]+:[ ]+04702573[ ]+csrr[ ]+a0,uintthresh >> +[ ]+[0-9a-f]+:[ ]+04759073[ ]+csrw[ ]+uintthresh,a1 >> +[ ]+[0-9a-f]+:[ ]+04802573[ ]+csrr[ ]+a0,uscratchcsw >> +[ ]+[0-9a-f]+:[ ]+04859073[ ]+csrw[ ]+uscratchcsw,a1 >> +[ ]+[0-9a-f]+:[ ]+04902573[ ]+csrr[ ]+a0,uscratchcswl >> +[ ]+[0-9a-f]+:[ ]+04959073[ ]+csrw[ ]+uscratchcswl,a1 >> [ ]+[0-9a-f]+:[ ]+30c02573[ ]+csrr[ ]+a0,mstateen0 >> [ ]+[0-9a-f]+:[ ]+30c59073[ ]+csrw[ ]+mstateen0,a1 >> [ ]+[0-9a-f]+:[ ]+30d02573[ ]+csrr[ ]+a0,mstateen1 >> diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.l b/gas/testsuite/gas/riscv/csr-version-1p9p1.l >> index c65d0b48e414..22bed0aecfd0 100644 >> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l >> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l >> @@ -494,6 +494,45 @@ >> .*Warning: invalid CSR `miph', needs `smaia' extension >> .*Warning: invalid CSR `miph', needs rv32i extension >> .*Warning: invalid CSR `miph', needs `smaia' extension >> +.*Warning: invalid CSR `mtvt', needs `smclic' extension >> +.*Warning: invalid CSR `mtvt', needs `smclic' extension >> +.*Warning: invalid CSR `mnxti', needs `smclic' extension >> +.*Warning: invalid CSR `mnxti', needs `smclic' extension >> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `mintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw mintstatus,a1' >> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `mintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `mscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `stvt', needs `smclic' extension >> +.*Warning: invalid CSR `stvt', needs `smclic' extension >> +.*Warning: invalid CSR `snxti', needs `smclic' extension >> +.*Warning: invalid CSR `snxti', needs `smclic' extension >> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `sintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw sintstatus,a1' >> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `sintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `sscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `utvt', needs `smclic' extension >> +.*Warning: invalid CSR `utvt', needs `smclic' extension >> +.*Warning: invalid CSR `unxti', needs `smclic' extension >> +.*Warning: invalid CSR `unxti', needs `smclic' extension >> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension >> +.*Warning: invalid CSR `uintstatus', needs `smclic' extension >> +.*Warning: read-only CSR is written `csrw uintstatus,a1' >> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `uintthresh', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcsw', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension >> +.*Warning: invalid CSR `uscratchcswl', needs `smclic' extension >> .*Warning: invalid CSR `mstateen0', needs `smstateen' extension >> .*Warning: invalid CSR `mstateen0', needs `smstateen' extension >> .*Warning: invalid CSR `mstateen1', needs `smstateen' extension >> diff --git a/gas/testsuite/gas/riscv/csr.s b/gas/testsuite/gas/riscv/csr.s >> index c7406ce34c2e..29a0710df812 100644 >> --- a/gas/testsuite/gas/riscv/csr.s >> +++ b/gas/testsuite/gas/riscv/csr.s >> @@ -350,6 +350,26 @@ >> csr mviph >> csr miph >> >> + # Smclic extension >> + csr mtvt >> + csr mnxti >> + csr mintstatus >> + csr mintthresh >> + csr mscratchcsw >> + csr mscratchcswl >> + csr stvt >> + csr snxti >> + csr sintstatus >> + csr sintthresh >> + csr sscratchcsw >> + csr sscratchcswl >> + csr utvt >> + csr unxti >> + csr uintstatus >> + csr uintthresh >> + csr uscratchcsw >> + csr uscratchcswl >> + >> # Smstateen/Ssstateen extensions >> csr mstateen0 >> csr mstateen1 >> diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h >> index 06e3df0f5a63..3f072bf01b3c 100644 >> --- a/include/opcode/riscv-opc.h >> +++ b/include/opcode/riscv-opc.h >> @@ -2673,6 +2673,25 @@ >> #define CSR_MVIENH 0x318 >> #define CSR_MVIPH 0x319 >> #define CSR_MIPH 0x354 >> +/* Smclic extension CSR addresses (including user interrupts). */ >> +#define CSR_MTVT 0x307 >> +#define CSR_MNXTI 0x345 >> +#define CSR_MINTSTATUS 0xf46 >> +#define CSR_MINTTHRESH 0x347 >> +#define CSR_MSCRATCHCSW 0x348 >> +#define CSR_MSCRATCHCSWL 0x349 >> +#define CSR_STVT 0x107 >> +#define CSR_SNXTI 0x145 >> +#define CSR_SINTSTATUS 0xd46 >> +#define CSR_SINTTHRESH 0x147 >> +#define CSR_SSCRATCHCSW 0x148 >> +#define CSR_SSCRATCHCSWL 0x149 >> +#define CSR_UTVT 0x7 >> +#define CSR_UNXTI 0x45 >> +#define CSR_UINTSTATUS 0xc46 >> +#define CSR_UINTTHRESH 0x47 >> +#define CSR_USCRATCHCSW 0x48 >> +#define CSR_USCRATCHCSWL 0x49 >> /* Smstateen extension */ >> #define CSR_MSTATEEN0 0x30c >> #define CSR_MSTATEEN1 0x30d >> @@ -3550,6 +3569,25 @@ 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) >> +/* Smclic extension CSRs (including user interrupts). */ >> +DECLARE_CSR(mtvt, CSR_MTVT, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(mnxti, CSR_MNXTI, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(mintstatus, CSR_MINTSTATUS, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(mintthresh, CSR_MINTTHRESH, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(mscratchcsw, CSR_MSCRATCHCSW, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(mscratchcswl, CSR_MSCRATCHCSWL, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(stvt, CSR_STVT, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(snxti, CSR_SNXTI, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(sintstatus, CSR_SINTSTATUS, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(sintthresh, CSR_SINTTHRESH, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(sscratchcsw, CSR_SSCRATCHCSW, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(sscratchcswl, CSR_SSCRATCHCSWL, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(utvt, CSR_UTVT, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(unxti, CSR_UNXTI, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(uintstatus, CSR_UINTSTATUS, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(uintthresh, CSR_UINTTHRESH, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(uscratchcsw, CSR_USCRATCHCSW, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> +DECLARE_CSR(uscratchcswl, CSR_USCRATCHCSWL, CSR_CLASS_SMCLIC, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> /* Smstateen/Ssstateen extensions. */ >> DECLARE_CSR(mstateen0, CSR_MSTATEEN0, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >> DECLARE_CSR(mstateen1, CSR_MSTATEEN1, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) >