Browse Source

Make misa.Q writable

pull/960/head
Mark Fedorov 4 years ago
parent
commit
2e4aa03778
  1. 4
      riscv/csrs.cc

4
riscv/csrs.cc

@ -488,11 +488,12 @@ bool sstatus_csr_t::enabled(const reg_t which) {
misa_csr_t::misa_csr_t(processor_t* const proc, const reg_t addr, const reg_t max_isa):
basic_csr_t(proc, addr, max_isa),
max_isa(max_isa),
write_mask(max_isa & (0 // allow MAFDCH bits in MISA to be modified
write_mask(max_isa & (0 // allow MAFDQCH bits in MISA to be modified
| (1L << ('M' - 'A'))
| (1L << ('A' - 'A'))
| (1L << ('F' - 'A'))
| (1L << ('D' - 'A'))
| (1L << ('Q' - 'A'))
| (1L << ('C' - 'A'))
| (1L << ('H' - 'A'))
)
@ -510,6 +511,7 @@ bool misa_csr_t::unlogged_write(const reg_t val) noexcept {
reg_t adjusted_val = val;
adjusted_val = dependency(adjusted_val, 'D', 'F');
adjusted_val = dependency(adjusted_val, 'Q', 'D');
const reg_t old_misa = read();
const bool prev_h = old_misa & (1L << ('H' - 'A'));

Loading…
Cancel
Save