diff options
author | Tsukasa OI <research_trasio@irq.a4lg.com> | 2022-06-24 11:51:56 +0900 |
---|---|---|
committer | Nelson Chu <nelson.chu@sifive.com> | 2022-06-28 09:08:42 +0800 |
commit | 766077c17343e4e539f3588f1c7f63d920f2bfa2 (patch) | |
tree | 7a37fe04ce098e5e08f1758f7c9b1a19bd6c036d /gas/config | |
parent | 713f370809b523277f8ecc69680ab591ce94da5e (diff) | |
download | gdb-766077c17343e4e539f3588f1c7f63d920f2bfa2.zip gdb-766077c17343e4e539f3588f1c7f63d920f2bfa2.tar.gz gdb-766077c17343e4e539f3588f1c7f63d920f2bfa2.tar.bz2 |
RISC-V: Add 'Sstc' extension and its CSRs
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.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-riscv.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index 2f6180e..a0e8456 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -74,6 +74,10 @@ enum riscv_csr_class CSR_CLASS_SMSTATEEN_AND_H_32, /* Smstateen RV32 only (with H) */ CSR_CLASS_SSCOFPMF, /* Sscofpmf only */ CSR_CLASS_SSCOFPMF_32, /* Sscofpmf RV32 only */ + CSR_CLASS_SSTC, /* Sstc only */ + CSR_CLASS_SSTC_AND_H, /* Sstc only (with H) */ + CSR_CLASS_SSTC_32, /* Sstc RV32 only */ + CSR_CLASS_SSTC_AND_H_32, /* Sstc RV32 only (with H) */ }; /* This structure holds all restricted conditions for a CSR. */ @@ -949,6 +953,16 @@ riscv_csr_address (const char *csr_name, case CSR_CLASS_SSCOFPMF: extension = "sscofpmf"; break; + case CSR_CLASS_SSTC: + case CSR_CLASS_SSTC_AND_H: + case CSR_CLASS_SSTC_32: + case CSR_CLASS_SSTC_AND_H_32: + is_rv32_only = (csr_class == CSR_CLASS_SSTC_32 + || csr_class == CSR_CLASS_SSTC_AND_H_32); + is_h_required = (csr_class == CSR_CLASS_SSTC_AND_H + || csr_class == CSR_CLASS_SSTC_AND_H_32); + extension = "sstc"; + break; case CSR_CLASS_DEBUG: break; default: |