From patchwork Tue Nov 29 01:19:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tsukasa OI X-Patchwork-Id: 26996 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp54248wrr; Mon, 28 Nov 2022 17:20:28 -0800 (PST) X-Google-Smtp-Source: AA0mqf6Dg8VaMJlb89bONQd/dmAEs2zZRc3Gqbnbk893HWdqVxvLLsOs9Js0F6bt+/Ak9ZFIMeXZ X-Received: by 2002:a05:6402:24a0:b0:458:ad54:20d5 with SMTP id q32-20020a05640224a000b00458ad5420d5mr48515087eda.86.1669684828178; Mon, 28 Nov 2022 17:20:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669684828; cv=none; d=google.com; s=arc-20160816; b=yQ7dRoHkGx5yY7T0dtR64Et+Fy54Q+XCs8k7Kyju7o4Xu6+ranPwXBGuiwZh7IsNxp yzGK0yfUvqZz044G6eTvrT1WCA2I3CwSR3VxsklAXbyX1182OI86pn/ruDJp40TPrxid XAQ8IIXZPUsBFTanMHgfq4rIynEEhATBjzoqBqHOaieJ2rgCqVUw1Itpql5FFPncHTtO 0vJ8Ce3ZZtWXKDq+EvO/sgSRd9Hfw1YhKKgaUYNb3AKozw0OYRlsOWLA8i3v5TeUWc4+ ZwMf7WvGFbURl1iFVv6mxTrWm2aDN+F/Pc0hW4WXF2PqGLk6j305vAx+10GhyVoXy4vV yuYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=BT+DJ1tS6+XuIpXEqrdUg3bzbVosNSulKDpR0MJ8fvI=; b=xcJDA8rbptbVxwZIDh1kSRueotHJC4se5gqa+7bBqXY5EY7jUQGSo3eU6Ik47N4lvh XYgEm0He4TL06+AmDKhlJBbPYjJ4lI/o7CwCZsiFiAA+uzweEeEAH7xVLPkkVA/9Aw4+ O3DWtKb98eKZw4aLNqD/AYhnJBeUg1oAv5sQy2OuPYD75YBwMtgtkg8bo0eZJwk2Ijvi Yxz/jvVsBYXJOHgmYnB+gRtlBvH7bOUDf0l2oufKMjlEo0+4QTYHFQ00HB6blfiXBTHP mgiBoK94/XG8dScMDlUa2JOeBr9FOOenFXhh0JeIETNuACGzcGJPm59KL2HHUeluKbKs E/dQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=hErXCZfy; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id dn1-20020a05640222e100b00469abb21f9esi758835edb.129.2022.11.28.17.20.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Nov 2022 17:20:28 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=hErXCZfy; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E49483854572 for ; Tue, 29 Nov 2022 01:20:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E49483854572 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1669684820; bh=BT+DJ1tS6+XuIpXEqrdUg3bzbVosNSulKDpR0MJ8fvI=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=hErXCZfyfIVB8uNqxTf5dCOkyjQ93l4UcAeVwqkZ0ewmtW11N/dU4vGJOQttmNDU8 yNdMrOGRNu1qwv1P7BKaerax3bqmT+xd6LyjOVtzpTS9OuYphgmkZxSyaxrm0Q/9N/ PcSrb3j2u+ncDwWQu7OKuy/bEopE4dhXWaNG2vK4= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org 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 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) 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 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tsukasa OI via Binutils From: Tsukasa OI Reply-To: Tsukasa OI Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750791419056844077?= X-GMAIL-MSGID: =?utf-8?q?1750791438645644603?= 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)