Browse Source

Use generic_ip_csr_t for hvip

pull/796/head
Scott Johnson 5 years ago
committed by Andrew Waterman
parent
commit
52c12a2f5f
  1. 17
      riscv/csrs.cc
  2. 5
      riscv/csrs.h

17
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
}

5
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 {

Loading…
Cancel
Save