aboutsummaryrefslogtreecommitdiff
path: root/riscv/csrs.h
diff options
context:
space:
mode:
authorWeiwei Li <liweiwei@iscas.ac.cn>2022-07-06 10:45:04 +0800
committerWeiwei Li <liweiwei@iscas.ac.cn>2022-07-09 08:56:00 +0800
commit2bf74857f0f7f3a63e029d7c7ecaf3d4523a846e (patch)
treead5f41de37fa05c7097f0788cca850e2b932cf01 /riscv/csrs.h
parent9b66f89b8102f032f721fe332819325508aa3b95 (diff)
downloadspike-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.h19
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