From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-sender-0.a4lg.com (mail-sender-0.a4lg.com [IPv6:2401:2500:203:30b:4000:6bfe:4757:0]) by sourceware.org (Postfix) with ESMTPS id E5AA33858C39 for ; Tue, 29 Nov 2022 01:20:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E5AA33858C39 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 4D013300089; Tue, 29 Nov 2022 01:20:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irq.a4lg.com; s=2017s01; t=1669684807; bh=BT+DJ1tS6+XuIpXEqrdUg3bzbVosNSulKDpR0MJ8fvI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Mime-Version:Content-Transfer-Encoding; b=lzcZCWk7Fuo5YHmxUtmzorwYk0B8tkajJ7zEKilmZhvbIYhVJX22TFB8TxRFrzaH5 Jmg/LPGX/TaPN/tnegHwRPbFqtdrZRz5kSZdsBUh4D+PGcxHWucTMAfGEnx8rhvyy+ /faCLS39c0v6LXd+3/R9o33IViVZFQrwZC15n4GM= From: Tsukasa OI To: Tsukasa OI Cc: binutils@sourceware.org Subject: [REVIEW ONLY 1/1] UNRATIFIED RISC-V: Add 'Smclic' extension and its CSRs Date: Tue, 29 Nov 2022 01:19:53 +0000 Message-Id: In-Reply-To: References: Mime-Version: 1.0 Content-Transfer-Encoding: 8bit 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: 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. 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) -- 2.38.1