diff options
author | Weiwei Li <liweiwei@iscas.ac.cn> | 2022-07-06 10:45:04 +0800 |
---|---|---|
committer | Weiwei Li <liweiwei@iscas.ac.cn> | 2022-07-09 08:56:00 +0800 |
commit | 2bf74857f0f7f3a63e029d7c7ecaf3d4523a846e (patch) | |
tree | ad5f41de37fa05c7097f0788cca850e2b932cf01 /riscv/csrs.h | |
parent | 9b66f89b8102f032f721fe332819325508aa3b95 (diff) | |
download | spike-2bf74857f0f7f3a63e029d7c7ecaf3d4523a846e.zip spike-2bf74857f0f7f3a63e029d7c7ecaf3d4523a846e.tar.gz spike-2bf74857f0f7f3a63e029d7c7ecaf3d4523a846e.tar.bz2 |
add support for csrs of smstateen extensions
Diffstat (limited to 'riscv/csrs.h')
-rw-r--r-- | riscv/csrs.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/riscv/csrs.h b/riscv/csrs.h index 03a3ed6..15f868c 100644 --- a/riscv/csrs.h +++ b/riscv/csrs.h @@ -676,4 +676,23 @@ class vxsat_csr_t: public masked_csr_t { virtual bool unlogged_write(const reg_t val) noexcept override; }; +class hstateen_csr_t: public masked_csr_t { + public: + hstateen_csr_t(processor_t* const proc, const reg_t addr, const reg_t mask, const reg_t init, uint8_t index); + virtual reg_t read() const noexcept override; + virtual void verify_permissions(insn_t insn, bool write) const override; + protected: + virtual bool unlogged_write(const reg_t val) noexcept override; +protected: + uint8_t index; +}; + +class sstateen_csr_t: public hstateen_csr_t { + public: + sstateen_csr_t(processor_t* const proc, const reg_t addr, const reg_t mask, const reg_t init, uint8_t index); + virtual reg_t read() const noexcept override; + virtual void verify_permissions(insn_t insn, bool write) const override; + protected: + virtual bool unlogged_write(const reg_t val) noexcept override; +}; #endif |