From 00c38fdb95dff4e18ed75361da03436075a03b3a Mon Sep 17 00:00:00 2001 From: Scott Johnson Date: Wed, 13 Jul 2022 09:01:15 -0700 Subject: Remove unnecessary mask from rv32_high_csr_t constructor --- riscv/csrs.cc | 5 ++--- riscv/csrs.h | 4 ++-- riscv/processor.cc | 7 +++---- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/riscv/csrs.cc b/riscv/csrs.cc index 83906cc..18956ff 100644 --- a/riscv/csrs.cc +++ b/riscv/csrs.cc @@ -494,10 +494,9 @@ bool mstatus_csr_t::unlogged_write(const reg_t val) noexcept { } // implement class rv32_high_csr_t -rv32_high_csr_t::rv32_high_csr_t(processor_t* const proc, const reg_t addr, const reg_t mask, csr_t_p orig): +rv32_high_csr_t::rv32_high_csr_t(processor_t* const proc, const reg_t addr, csr_t_p orig): csr_t(proc, addr), - orig(orig), - mask(mask) { + orig(orig) { } reg_t rv32_high_csr_t::read() const noexcept { diff --git a/riscv/csrs.h b/riscv/csrs.h index bde31da..7b1f87c 100644 --- a/riscv/csrs.h +++ b/riscv/csrs.h @@ -251,14 +251,14 @@ typedef std::shared_ptr mstatus_csr_t_p; class rv32_high_csr_t: public csr_t { public: - rv32_high_csr_t(processor_t* const proc, const reg_t addr, const reg_t mask, csr_t_p orig); + rv32_high_csr_t(processor_t* const proc, const reg_t addr, csr_t_p orig); 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; private: csr_t_p orig; - const reg_t mask; + const reg_t mask = -1; }; class sstatus_proxy_csr_t final: public base_status_csr_t { diff --git a/riscv/processor.cc b/riscv/processor.cc index febd61f..c0f4964 100644 --- a/riscv/processor.cc +++ b/riscv/processor.cc @@ -192,8 +192,7 @@ void state_t::reset(processor_t* const proc, reg_t max_isa) csrmap[CSR_MSTATUS] = mstatus = std::make_shared(proc, CSR_MSTATUS); if (xlen == 32) { - const reg_t mstatush_mask = -1; - csrmap[CSR_MSTATUSH] = std::make_shared(proc, CSR_MSTATUSH, mstatush_mask, mstatus); + csrmap[CSR_MSTATUSH] = std::make_shared(proc, CSR_MSTATUSH, mstatus); } csrmap[CSR_MEPC] = mepc = std::make_shared(proc, CSR_MEPC); csrmap[CSR_MTVAL] = mtval = std::make_shared(proc, CSR_MTVAL, 0); @@ -405,13 +404,13 @@ void state_t::reset(processor_t* const proc, reg_t max_isa) const reg_t mstateen_mask = i == 0 ? mstateen0_mask : MSTATEEN_HSTATEEN; csrmap[CSR_MSTATEEN0 + i] = mstateen[i] = std::make_shared(proc, CSR_MSTATEEN0 + i, mstateen_mask, 0); if (xlen == 32) { - csrmap[CSR_MSTATEEN0H + i] = std::make_shared(proc, CSR_MSTATEEN0H + i, -1, mstateen[i]); + csrmap[CSR_MSTATEEN0H + i] = std::make_shared(proc, CSR_MSTATEEN0H + i, mstateen[i]); } const reg_t hstateen_mask = i == 0 ? hstateen0_mask : HSTATEEN_SSTATEEN; csrmap[CSR_HSTATEEN0 + i] = hstateen[i] = std::make_shared(proc, CSR_HSTATEEN0 + i, hstateen_mask, 0, i); if (xlen == 32) { - csrmap[CSR_HSTATEEN0H + i] = std::make_shared(proc, CSR_HSTATEEN0H + i, -1, hstateen[i]); + csrmap[CSR_HSTATEEN0H + i] = std::make_shared(proc, CSR_HSTATEEN0H + i, hstateen[i]); } const reg_t sstateen_mask = i == 0 ? sstateen0_mask : 0; -- cgit v1.1