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 2A98C3858025 for ; Thu, 24 Feb 2022 12:11:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2A98C3858025 Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 7EF38300089; Thu, 24 Feb 2022 12:11:20 +0000 (UTC) From: Tsukasa OI To: Tsukasa OI , Nelson Chu Cc: binutils@sourceware.org Subject: [PATCH 3/3] RISC-V: Add 'Sstc' extension and its CSRs Date: Thu, 24 Feb 2022 21:10:59 +0900 Message-Id: In-Reply-To: References: Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Thu, 24 Feb 2022 12:11:25 -0000 This commit adds "stimecmp / vstimecmp" Extension (Sstc) and its CSRs. bfd/ChangeLog: * elfxx-riscv.c (riscv_supported_std_s_ext): Add 'Sstc' extension to valid 'S' extension list. gas/ChangeLog: * config/tc-riscv.c (enum riscv_csr_class): Add CSR classes for 'Sstc' extension. (riscv_csr_address): Add handling for new CSR classes. * testsuite/gas/riscv/csr-dw-regnums.s: Add new CSRs. * testsuite/gas/riscv/csr-dw-regnums.d: Likewise. * testsuite/gas/riscv/csr.s: Add new CSRs. * 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_STIMECMP, CSR_STIMECMPH, CSR_VSTIMECMP, CSR_VSTIMECMPH): New CSR macros. --- bfd/elfxx-riscv.c | 1 + gas/config/tc-riscv.c | 9 +++++++++ gas/testsuite/gas/riscv/csr-dw-regnums.d | 4 ++++ gas/testsuite/gas/riscv/csr-dw-regnums.s | 5 +++++ gas/testsuite/gas/riscv/csr-version-1p10.d | 8 ++++++++ gas/testsuite/gas/riscv/csr-version-1p10.l | 20 ++++++++++++++++++++ gas/testsuite/gas/riscv/csr-version-1p11.d | 8 ++++++++ gas/testsuite/gas/riscv/csr-version-1p11.l | 16 ++++++++++++++++ gas/testsuite/gas/riscv/csr-version-1p12.d | 8 ++++++++ gas/testsuite/gas/riscv/csr-version-1p12.l | 12 ++++++++++++ gas/testsuite/gas/riscv/csr-version-1p9p1.d | 8 ++++++++ gas/testsuite/gas/riscv/csr-version-1p9p1.l | 20 ++++++++++++++++++++ gas/testsuite/gas/riscv/csr.s | 6 ++++++ include/opcode/riscv-opc.h | 10 ++++++++++ 14 files changed, 135 insertions(+) diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index fab30c700ba..92b12141a80 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1222,6 +1222,7 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] = { {"smstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"sscofpmf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"sstc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"svinval", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {NULL, 0, 0, 0, 0} }; diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index 3600af64607..a64dcf49adc 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -69,6 +69,8 @@ enum riscv_csr_class CSR_CLASS_SMSTATEEN_32, /* Smstateen RV32 only */ CSR_CLASS_SSCOFPMF, /* Sscofpmf only */ CSR_CLASS_SSCOFPMF_32, /* Sscofpmf RV32 only */ + CSR_CLASS_SSTC, /* Sstc only */ + CSR_CLASS_SSTC_32, /* Sstc RV32 only */ CSR_CLASS_DEBUG /* debug CSR */ }; @@ -936,6 +938,13 @@ riscv_csr_address (const char *csr_name, need_check_version = true; extension = "sscofpmf"; break; + case CSR_CLASS_SSTC_32: + rv32_only = (xlen == 32); + /* Fall through. */ + case CSR_CLASS_SSTC: + need_check_version = true; + extension = "sstc"; + break; case CSR_CLASS_DEBUG: break; default: diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d b/gas/testsuite/gas/riscv/csr-dw-regnums.d index 2f353293faa..b4b3806a085 100644 --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d @@ -363,6 +363,10 @@ Contents of the .* section: DW_CFA_offset_extended_sf: r5949 \(mhpmevent29h\) at cfa\+7412 DW_CFA_offset_extended_sf: r5950 \(mhpmevent30h\) at cfa\+7416 DW_CFA_offset_extended_sf: r5951 \(mhpmevent31h\) at cfa\+7420 + DW_CFA_offset_extended_sf: r4429 \(stimecmp\) at cfa\+1332 + DW_CFA_offset_extended_sf: r4445 \(stimecmph\) at cfa\+1396 + DW_CFA_offset_extended_sf: r4685 \(vstimecmp\) at cfa\+2356 + DW_CFA_offset_extended_sf: r4701 \(vstimecmph\) at cfa\+2420 DW_CFA_offset_extended_sf: r4163 \(utval\) at cfa\+268 DW_CFA_offset_extended_sf: r4419 \(stval\) at cfa\+1292 DW_CFA_offset_extended_sf: r4480 \(satp\) at cfa\+1536 diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.s b/gas/testsuite/gas/riscv/csr-dw-regnums.s index caac321c6e2..6cfa415ebc2 100644 --- a/gas/testsuite/gas/riscv/csr-dw-regnums.s +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.s @@ -359,6 +359,11 @@ _start: .cfi_offset mhpmevent29h, 7412 .cfi_offset mhpmevent30h, 7416 .cfi_offset mhpmevent31h, 7420 + # Sstc extension + .cfi_offset stimecmp, 1332 + .cfi_offset stimecmph, 1396 + .cfi_offset vstimecmp, 2356 + .cfi_offset vstimecmph, 2420 # dropped .cfi_offset ubadaddr, 268 # aliases .cfi_offset sbadaddr, 1292 # aliases diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.d b/gas/testsuite/gas/riscv/csr-version-1p10.d index 124ef73baa7..ea19043a49b 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p10.d +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d @@ -701,6 +701,14 @@ Disassembly of section .text: [ ]+[0-9a-f]+:[ ]+73e59073[ ]+csrw[ ]+0x73e,a1 [ ]+[0-9a-f]+:[ ]+73f02573[ ]+csrr[ ]+a0,0x73f [ ]+[0-9a-f]+:[ ]+73f59073[ ]+csrw[ ]+0x73f,a1 +[ ]+[0-9a-f]+:[ ]+14d02573[ ]+csrr[ ]+a0,0x14d +[ ]+[0-9a-f]+:[ ]+14d59073[ ]+csrw[ ]+0x14d,a1 +[ ]+[0-9a-f]+:[ ]+15d02573[ ]+csrr[ ]+a0,0x15d +[ ]+[0-9a-f]+:[ ]+15d59073[ ]+csrw[ ]+0x15d,a1 +[ ]+[0-9a-f]+:[ ]+24d02573[ ]+csrr[ ]+a0,0x24d +[ ]+[0-9a-f]+:[ ]+24d59073[ ]+csrw[ ]+0x24d,a1 +[ ]+[0-9a-f]+:[ ]+25d02573[ ]+csrr[ ]+a0,0x25d +[ ]+[0-9a-f]+:[ ]+25d59073[ ]+csrw[ ]+0x25d,a1 [ ]+[0-9a-f]+:[ ]+04302573[ ]+csrr[ ]+a0,utval [ ]+[0-9a-f]+:[ ]+04359073[ ]+csrw[ ]+utval,a1 [ ]+[0-9a-f]+:[ ]+14302573[ ]+csrr[ ]+a0,stval diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas/riscv/csr-version-1p10.l index e2d2cfef15a..d04643ac5c5 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p10.l +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l @@ -662,6 +662,26 @@ .*Warning: invalid CSR `mhpmevent31h', needs rv32i extension .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension .*Warning: invalid CSR `mhpmevent31h' for the privileged spec `1.10' +.*Warning: invalid CSR `stimecmp', needs `sstc' extension +.*Warning: invalid CSR `stimecmp' for the privileged spec `1.10' +.*Warning: invalid CSR `stimecmp', needs `sstc' extension +.*Warning: invalid CSR `stimecmp' for the privileged spec `1.10' +.*Warning: invalid CSR `stimecmph', needs rv32i extension +.*Warning: invalid CSR `stimecmph', needs `sstc' extension +.*Warning: invalid CSR `stimecmph' for the privileged spec `1.10' +.*Warning: invalid CSR `stimecmph', needs rv32i extension +.*Warning: invalid CSR `stimecmph', needs `sstc' extension +.*Warning: invalid CSR `stimecmph' for the privileged spec `1.10' +.*Warning: invalid CSR `vstimecmp', needs `sstc' extension +.*Warning: invalid CSR `vstimecmp' for the privileged spec `1.10' +.*Warning: invalid CSR `vstimecmp', needs `sstc' extension +.*Warning: invalid CSR `vstimecmp' for the privileged spec `1.10' +.*Warning: invalid CSR `vstimecmph', needs rv32i extension +.*Warning: invalid CSR `vstimecmph', needs `sstc' extension +.*Warning: invalid CSR `vstimecmph' for the privileged spec `1.10' +.*Warning: invalid CSR `vstimecmph', needs rv32i extension +.*Warning: invalid CSR `vstimecmph', needs `sstc' extension +.*Warning: invalid CSR `vstimecmph' for the privileged spec `1.10' .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.10' .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.10' .*Warning: invalid CSR `sbadaddr' for the privileged spec `1.10' diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.d b/gas/testsuite/gas/riscv/csr-version-1p11.d index 1d2640b540e..5190094d21c 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p11.d +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d @@ -701,6 +701,14 @@ Disassembly of section .text: [ ]+[0-9a-f]+:[ ]+73e59073[ ]+csrw[ ]+mhpmevent30h,a1 [ ]+[0-9a-f]+:[ ]+73f02573[ ]+csrr[ ]+a0,mhpmevent31h [ ]+[0-9a-f]+:[ ]+73f59073[ ]+csrw[ ]+mhpmevent31h,a1 +[ ]+[0-9a-f]+:[ ]+14d02573[ ]+csrr[ ]+a0,stimecmp +[ ]+[0-9a-f]+:[ ]+14d59073[ ]+csrw[ ]+stimecmp,a1 +[ ]+[0-9a-f]+:[ ]+15d02573[ ]+csrr[ ]+a0,stimecmph +[ ]+[0-9a-f]+:[ ]+15d59073[ ]+csrw[ ]+stimecmph,a1 +[ ]+[0-9a-f]+:[ ]+24d02573[ ]+csrr[ ]+a0,0x24d +[ ]+[0-9a-f]+:[ ]+24d59073[ ]+csrw[ ]+0x24d,a1 +[ ]+[0-9a-f]+:[ ]+25d02573[ ]+csrr[ ]+a0,0x25d +[ ]+[0-9a-f]+:[ ]+25d59073[ ]+csrw[ ]+0x25d,a1 [ ]+[0-9a-f]+:[ ]+04302573[ ]+csrr[ ]+a0,utval [ ]+[0-9a-f]+:[ ]+04359073[ ]+csrw[ ]+utval,a1 [ ]+[0-9a-f]+:[ ]+14302573[ ]+csrr[ ]+a0,stval diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas/riscv/csr-version-1p11.l index 3d129511534..0aa7c49a613 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p11.l +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l @@ -600,6 +600,22 @@ .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension .*Warning: invalid CSR `mhpmevent31h', needs rv32i extension .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension +.*Warning: invalid CSR `stimecmp', needs `sstc' extension +.*Warning: invalid CSR `stimecmp', needs `sstc' extension +.*Warning: invalid CSR `stimecmph', needs rv32i extension +.*Warning: invalid CSR `stimecmph', needs `sstc' extension +.*Warning: invalid CSR `stimecmph', needs rv32i extension +.*Warning: invalid CSR `stimecmph', needs `sstc' extension +.*Warning: invalid CSR `vstimecmp', needs `sstc' extension +.*Warning: invalid CSR `vstimecmp' for the privileged spec `1.11' +.*Warning: invalid CSR `vstimecmp', needs `sstc' extension +.*Warning: invalid CSR `vstimecmp' for the privileged spec `1.11' +.*Warning: invalid CSR `vstimecmph', needs rv32i extension +.*Warning: invalid CSR `vstimecmph', needs `sstc' extension +.*Warning: invalid CSR `vstimecmph' for the privileged spec `1.11' +.*Warning: invalid CSR `vstimecmph', needs rv32i extension +.*Warning: invalid CSR `vstimecmph', needs `sstc' extension +.*Warning: invalid CSR `vstimecmph' for the privileged spec `1.11' .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.11' .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.11' .*Warning: invalid CSR `sbadaddr' for the privileged spec `1.11' diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.d b/gas/testsuite/gas/riscv/csr-version-1p12.d index 60f19bff874..728e647c552 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p12.d +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d @@ -701,6 +701,14 @@ Disassembly of section .text: [ ]+[0-9a-f]+:[ ]+73e59073[ ]+csrw[ ]+mhpmevent30h,a1 [ ]+[0-9a-f]+:[ ]+73f02573[ ]+csrr[ ]+a0,mhpmevent31h [ ]+[0-9a-f]+:[ ]+73f59073[ ]+csrw[ ]+mhpmevent31h,a1 +[ ]+[0-9a-f]+:[ ]+14d02573[ ]+csrr[ ]+a0,stimecmp +[ ]+[0-9a-f]+:[ ]+14d59073[ ]+csrw[ ]+stimecmp,a1 +[ ]+[0-9a-f]+:[ ]+15d02573[ ]+csrr[ ]+a0,stimecmph +[ ]+[0-9a-f]+:[ ]+15d59073[ ]+csrw[ ]+stimecmph,a1 +[ ]+[0-9a-f]+:[ ]+24d02573[ ]+csrr[ ]+a0,vstimecmp +[ ]+[0-9a-f]+:[ ]+24d59073[ ]+csrw[ ]+vstimecmp,a1 +[ ]+[0-9a-f]+:[ ]+25d02573[ ]+csrr[ ]+a0,vstimecmph +[ ]+[0-9a-f]+:[ ]+25d59073[ ]+csrw[ ]+vstimecmph,a1 [ ]+[0-9a-f]+:[ ]+04302573[ ]+csrr[ ]+a0,0x43 [ ]+[0-9a-f]+:[ ]+04359073[ ]+csrw[ ]+0x43,a1 [ ]+[0-9a-f]+:[ ]+14302573[ ]+csrr[ ]+a0,stval diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas/riscv/csr-version-1p12.l index b88a20d7254..f27a83f6a88 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p12.l +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l @@ -396,6 +396,18 @@ .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension .*Warning: invalid CSR `mhpmevent31h', needs rv32i extension .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension +.*Warning: invalid CSR `stimecmp', needs `sstc' extension +.*Warning: invalid CSR `stimecmp', needs `sstc' extension +.*Warning: invalid CSR `stimecmph', needs rv32i extension +.*Warning: invalid CSR `stimecmph', needs `sstc' extension +.*Warning: invalid CSR `stimecmph', needs rv32i extension +.*Warning: invalid CSR `stimecmph', needs `sstc' extension +.*Warning: invalid CSR `vstimecmp', needs `sstc' extension +.*Warning: invalid CSR `vstimecmp', needs `sstc' extension +.*Warning: invalid CSR `vstimecmph', needs rv32i extension +.*Warning: invalid CSR `vstimecmph', needs `sstc' extension +.*Warning: invalid CSR `vstimecmph', needs rv32i extension +.*Warning: invalid CSR `vstimecmph', needs `sstc' extension .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.12' .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.12' .*Warning: invalid CSR `sbadaddr' for the privileged spec `1.12' diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.d b/gas/testsuite/gas/riscv/csr-version-1p9p1.d index 7e1772c411a..efdd7f1a834 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d @@ -701,6 +701,14 @@ Disassembly of section .text: [ ]+[0-9a-f]+:[ ]+73e59073[ ]+csrw[ ]+0x73e,a1 [ ]+[0-9a-f]+:[ ]+73f02573[ ]+csrr[ ]+a0,0x73f [ ]+[0-9a-f]+:[ ]+73f59073[ ]+csrw[ ]+0x73f,a1 +[ ]+[0-9a-f]+:[ ]+14d02573[ ]+csrr[ ]+a0,0x14d +[ ]+[0-9a-f]+:[ ]+14d59073[ ]+csrw[ ]+0x14d,a1 +[ ]+[0-9a-f]+:[ ]+15d02573[ ]+csrr[ ]+a0,0x15d +[ ]+[0-9a-f]+:[ ]+15d59073[ ]+csrw[ ]+0x15d,a1 +[ ]+[0-9a-f]+:[ ]+24d02573[ ]+csrr[ ]+a0,0x24d +[ ]+[0-9a-f]+:[ ]+24d59073[ ]+csrw[ ]+0x24d,a1 +[ ]+[0-9a-f]+:[ ]+25d02573[ ]+csrr[ ]+a0,0x25d +[ ]+[0-9a-f]+:[ ]+25d59073[ ]+csrw[ ]+0x25d,a1 [ ]+[0-9a-f]+:[ ]+04302573[ ]+csrr[ ]+a0,ubadaddr [ ]+[0-9a-f]+:[ ]+04359073[ ]+csrw[ ]+ubadaddr,a1 [ ]+[0-9a-f]+:[ ]+14302573[ ]+csrr[ ]+a0,sbadaddr diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.l b/gas/testsuite/gas/riscv/csr-version-1p9p1.l index 527af670bf7..73433dfdf2a 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l @@ -712,6 +712,26 @@ .*Warning: invalid CSR `mhpmevent31h', needs rv32i extension .*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension .*Warning: invalid CSR `mhpmevent31h' for the privileged spec `1.9.1' +.*Warning: invalid CSR `stimecmp', needs `sstc' extension +.*Warning: invalid CSR `stimecmp' for the privileged spec `1.9.1' +.*Warning: invalid CSR `stimecmp', needs `sstc' extension +.*Warning: invalid CSR `stimecmp' for the privileged spec `1.9.1' +.*Warning: invalid CSR `stimecmph', needs rv32i extension +.*Warning: invalid CSR `stimecmph', needs `sstc' extension +.*Warning: invalid CSR `stimecmph' for the privileged spec `1.9.1' +.*Warning: invalid CSR `stimecmph', needs rv32i extension +.*Warning: invalid CSR `stimecmph', needs `sstc' extension +.*Warning: invalid CSR `stimecmph' for the privileged spec `1.9.1' +.*Warning: invalid CSR `vstimecmp', needs `sstc' extension +.*Warning: invalid CSR `vstimecmp' for the privileged spec `1.9.1' +.*Warning: invalid CSR `vstimecmp', needs `sstc' extension +.*Warning: invalid CSR `vstimecmp' for the privileged spec `1.9.1' +.*Warning: invalid CSR `vstimecmph', needs rv32i extension +.*Warning: invalid CSR `vstimecmph', needs `sstc' extension +.*Warning: invalid CSR `vstimecmph' for the privileged spec `1.9.1' +.*Warning: invalid CSR `vstimecmph', needs rv32i extension +.*Warning: invalid CSR `vstimecmph', needs `sstc' extension +.*Warning: invalid CSR `vstimecmph' for the privileged spec `1.9.1' .*Warning: invalid CSR `utval' for the privileged spec `1.9.1' .*Warning: invalid CSR `utval' for the privileged spec `1.9.1' .*Warning: invalid CSR `fflags', needs `f' extension diff --git a/gas/testsuite/gas/riscv/csr.s b/gas/testsuite/gas/riscv/csr.s index 2a723123f1b..128aeb83a04 100644 --- a/gas/testsuite/gas/riscv/csr.s +++ b/gas/testsuite/gas/riscv/csr.s @@ -391,6 +391,12 @@ csr mhpmevent30h csr mhpmevent31h + # Sstc extension + csr stimecmp + csr stimecmph + csr vstimecmp + csr vstimecmph + # Supported in previous priv spec, but dropped now csr ubadaddr # 0x043 in 1.9.1, but the value is utval since 1.10 diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h index 07ee832ec0f..9e168d5ea13 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2400,6 +2400,11 @@ #define CSR_MHPMEVENT29H 0x73d #define CSR_MHPMEVENT30H 0x73e #define CSR_MHPMEVENT31H 0x73f +/* Sstc extension */ +#define CSR_STIMECMP 0x14d +#define CSR_STIMECMPH 0x15d +#define CSR_VSTIMECMP 0x24d +#define CSR_VSTIMECMPH 0x25d /* Unprivileged Floating-Point CSR addresses. */ #define CSR_FFLAGS 0x1 #define CSR_FRM 0x2 @@ -3110,6 +3115,11 @@ DECLARE_CSR(mhpmevent28h, CSR_MHPMEVENT28H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLA DECLARE_CSR(mhpmevent29h, CSR_MHPMEVENT29H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLASS_1P11, PRIV_SPEC_CLASS_DRAFT) DECLARE_CSR(mhpmevent30h, CSR_MHPMEVENT30H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLASS_1P11, PRIV_SPEC_CLASS_DRAFT) DECLARE_CSR(mhpmevent31h, CSR_MHPMEVENT31H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLASS_1P11, PRIV_SPEC_CLASS_DRAFT) +/* Sstc extension */ +DECLARE_CSR(stimecmp, CSR_STIMECMP, CSR_CLASS_SSTC, PRIV_SPEC_CLASS_1P11, PRIV_SPEC_CLASS_DRAFT) +DECLARE_CSR(stimecmph, CSR_STIMECMPH, CSR_CLASS_SSTC_32, PRIV_SPEC_CLASS_1P11, PRIV_SPEC_CLASS_DRAFT) +DECLARE_CSR(vstimecmp, CSR_VSTIMECMP, CSR_CLASS_SSTC, PRIV_SPEC_CLASS_1P12, PRIV_SPEC_CLASS_DRAFT) +DECLARE_CSR(vstimecmph, CSR_VSTIMECMPH, CSR_CLASS_SSTC_32, PRIV_SPEC_CLASS_1P12, PRIV_SPEC_CLASS_DRAFT) /* Dropped CSRs. */ DECLARE_CSR(mbase, CSR_MBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10) DECLARE_CSR(mbound, CSR_MBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10) -- 2.32.0