We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents fa694e2 + 8566627 commit 88fc84dCopy full SHA for 88fc84d
riscv/csrs.cc
@@ -556,9 +556,8 @@ bool mstatus_csr_t::unlogged_write(const reg_t val) noexcept {
556
const reg_t requested_mpp = proc->legalize_privilege(get_field(val, MSTATUS_MPP));
557
const reg_t adjusted_val = set_field(val, MSTATUS_MPP, requested_mpp);
558
reg_t new_mstatus = (read() & ~mask) | (adjusted_val & mask);
559
- if (new_mstatus & MSTATUS_MDT) {
560
- new_mstatus = new_mstatus & ~MSTATUS_MIE;
561
- }
+ new_mstatus = (new_mstatus & MSTATUS_MDT) ? (new_mstatus & ~MSTATUS_MIE) : new_mstatus;
+ new_mstatus = (new_mstatus & MSTATUS_SDT) ? (new_mstatus & ~MSTATUS_SIE) : new_mstatus;
562
maybe_flush_tlb(new_mstatus);
563
this->val = adjust_sd(new_mstatus);
564
return true;
0 commit comments