Browse Source

Retire dirty_vs_state macro

Reduce chance that it gets misused again in the future.
pull/2207/head
Andrew Waterman 1 month ago
parent
commit
a437348306
Failed to extract signature
  1. 4
      riscv/csrs.cc
  2. 1
      riscv/decode_macros.h

4
riscv/csrs.cc

@ -1598,7 +1598,7 @@ void vector_csr_t::write_raw(const reg_t val) noexcept {
bool vector_csr_t::unlogged_write(const reg_t val) noexcept {
if (mask == 0) return false;
dirty_vs_state;
STATE.sstatus->dirty(SSTATUS_VS);
return basic_csr_t::unlogged_write(val & mask);
}
@ -1612,7 +1612,7 @@ void vxsat_csr_t::verify_permissions(insn_t insn, bool write) const {
}
bool vxsat_csr_t::unlogged_write(const reg_t val) noexcept {
dirty_vs_state;
STATE.sstatus->dirty(SSTATUS_VS);
return masked_csr_t::unlogged_write(val);
}

1
riscv/decode_macros.h

@ -110,7 +110,6 @@
#define FRS3_D READ_FREG_D(insn.rs3())
#define dirty_fp_state STATE.sstatus->dirty(SSTATUS_FS)
#define dirty_ext_state STATE.sstatus->dirty(SSTATUS_XS)
#define dirty_vs_state STATE.sstatus->dirty(SSTATUS_VS)
#define DO_WRITE_FREG(reg, value) (STATE.FPR.write(reg, value), dirty_fp_state)
#define WRITE_FRD(value) WRITE_FREG(insn.rd(), value)
#define WRITE_FRD_H(value) \

Loading…
Cancel
Save