From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by sourceware.org (Postfix) with ESMTPS id 7ACB73858D28 for ; Tue, 29 Nov 2022 02:03:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7ACB73858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=dabbelt.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=dabbelt.com Received: by mail-pj1-x1032.google.com with SMTP id b13-20020a17090a5a0d00b0021906102d05so10462429pjd.5 for ; Mon, 28 Nov 2022 18:03:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20210112.gappssmtp.com; s=20210112; h=message-id:to:from:cc:in-reply-to:subject:date:from:to:cc:subject :date:message-id:reply-to; bh=/Gbpg8YieeaHYUOC3CYUO04tM9Prn+yhnEEx9ZwgTB0=; b=mQst3XlS+Z8i8pKz8pyVJJA6/8YL4yjZZXNgkNSr6pYGdi9KQLe/2/r+a5Xh4hVJzE qsp/SQWh63X+4CvrRwcYKWusR+KELF819Dvq+8uvxKFyQv7pwzKWT9zrCIqSak76x/JX GMtSoutHDDMvYWHSQVMRWmLUReZn0ykEPXtJxePMMo3Hwi44UetSfzpWkp10ddxtjJAY SDeqISR+JkwCaDxrOo1HeTxFIJPhq8GJqVL7cz46pn8nuYSQcKS8PBDj5VYoSI1IWbxJ S9Zs0oPsadwCNWpzDnSKTMAn99a0k0RGTfGqgCYJ6sWwcOhwy4EW9CyA7xGEc8mAIr8M jN0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=message-id:to:from:cc:in-reply-to:subject:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=/Gbpg8YieeaHYUOC3CYUO04tM9Prn+yhnEEx9ZwgTB0=; b=PXfJhxS/Ubs0oFeKX1E/+j7XBCXIJ3NHmI/kYk0k/n4u8PN1SpcfHFb+BnhY+g79cR aD3SNXTiIaBhXjTmAYejvFh30GwDbP/MnUPsot2FV0598nJSthMZYdg4OPRAFZDP1UnG SKl5IC0oHLgmDEtS3WRdmA+qrV7eWN0vgc/LyTSO1OXlmZE3+JpM2xNG03fnMLEtxzve wOQc/WGGYcflw1JJGkX0n6/5Roj48OK3yK9mEQjdv6T7rMVRzRgrJKr4R9UsatT6xLd3 BZCaJnSHiTj3ItAIBs/9mzGlzGeBK4wWk2dVi4AJ6AqM1A/PcNg2vzIMqtGGexGhIroB GKNA== X-Gm-Message-State: ANoB5pmmZrmnsu6npXCZ3O1E+WCtWq1506DLSe49wnlRUn0kaZ0RFYm9 v+efNSEo5xuRD1U4kLjBK7wBHHGBzMndVQ== X-Google-Smtp-Source: AA0mqf6Ta/JY8WH5eqAoZiub3fT/4jP3knIMK3OWxN2LmUIL/gmYCQJkdNBmgFE3G2Z44cqVgMMzSg== X-Received: by 2002:a17:90a:ca16:b0:219:d71:5acf with SMTP id x22-20020a17090aca1600b002190d715acfmr19658044pjt.52.1669687390987; Mon, 28 Nov 2022 18:03:10 -0800 (PST) Received: from localhost ([50.221.140.188]) by smtp.gmail.com with ESMTPSA id q23-20020aa78437000000b005627ddbc7a4sm8594053pfn.191.2022.11.28.18.03.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Nov 2022 18:03:10 -0800 (PST) Date: Mon, 28 Nov 2022 18:03:10 -0800 (PST) X-Google-Original-Date: Mon, 28 Nov 2022 18:02:57 PST (-0800) Subject: Re: [REVIEW ONLY 1/1] UNRATIFIED RISC-V: Add 'Smclic' extension and its CSRs In-Reply-To: CC: research_trasio@irq.a4lg.com, binutils@sourceware.org From: Palmer Dabbelt To: binutils@sourceware.org Message-ID: X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,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 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? > > 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)