diff --git a/riscv/csrs.cc b/riscv/csrs.cc index 1f8caf7d..64c1f4a1 100644 --- a/riscv/csrs.cc +++ b/riscv/csrs.cc @@ -597,16 +597,13 @@ sip_csr_t::sip_csr_t(processor_t* const proc, const reg_t addr): // implement class hvip_csr_t hvip_csr_t::hvip_csr_t(processor_t* const proc, const reg_t addr): - csr_t(proc, addr) { -} - -reg_t hvip_csr_t::read() const noexcept { - return state->mip->read() & MIP_VS_MASK; -} - -void hvip_csr_t::write(const reg_t val) noexcept { - const reg_t mask = MIP_VS_MASK; - state->mip->write_with_mask(mask, val); + generic_ip_csr_t(proc, + addr, + MIP_VS_MASK, // read_mask + MIP_VS_MASK, // write_mask + false, // mask_mideleg + false, // mask_hideleg + 0) { // shiftamt } diff --git a/riscv/csrs.h b/riscv/csrs.h index ba3d05d7..080082c4 100644 --- a/riscv/csrs.h +++ b/riscv/csrs.h @@ -307,12 +307,9 @@ class sip_csr_t: public generic_ip_csr_t { }; -class hvip_csr_t: public csr_t { +class hvip_csr_t: public generic_ip_csr_t { public: hvip_csr_t(processor_t* const proc, const reg_t addr); - - virtual reg_t read() const noexcept override; - virtual void write(const reg_t val) noexcept override; }; class hip_csr_t: public csr_t {