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
Failed to extract signature
2 changed files with
2 additions and
3 deletions
-
riscv/csrs.cc
-
riscv/decode_macros.h
|
|
@ -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 { |
|
|
bool vector_csr_t::unlogged_write(const reg_t val) noexcept { |
|
|
if (mask == 0) return false; |
|
|
if (mask == 0) return false; |
|
|
dirty_vs_state; |
|
|
STATE.sstatus->dirty(SSTATUS_VS); |
|
|
return basic_csr_t::unlogged_write(val & mask); |
|
|
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 { |
|
|
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); |
|
|
return masked_csr_t::unlogged_write(val); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -110,7 +110,6 @@ |
|
|
#define FRS3_D READ_FREG_D(insn.rs3()) |
|
|
#define FRS3_D READ_FREG_D(insn.rs3()) |
|
|
#define dirty_fp_state STATE.sstatus->dirty(SSTATUS_FS) |
|
|
#define dirty_fp_state STATE.sstatus->dirty(SSTATUS_FS) |
|
|
#define dirty_ext_state STATE.sstatus->dirty(SSTATUS_XS) |
|
|
#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 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(value) WRITE_FREG(insn.rd(), value) |
|
|
#define WRITE_FRD_H(value) \ |
|
|
#define WRITE_FRD_H(value) \ |
|
|
|