diff --git a/src/iss/arch/riscv_hart_msu_vp.h b/src/iss/arch/riscv_hart_msu_vp.h index c0e3706..ee0b799 100644 --- a/src/iss/arch/riscv_hart_msu_vp.h +++ b/src/iss/arch/riscv_hart_msu_vp.h @@ -488,7 +488,7 @@ template void riscv_hart_msu_vp::ch bool mie = this->state.mstatus.MIE; auto m_enabled = this->reg.PRIV < PRIV_M || (this->reg.PRIV == PRIV_M && mie); auto enabled_interrupts = m_enabled ? ena_irq & ~ideleg : 0; - + this->reg.pending_trap = 0; if(enabled_interrupts == 0) { auto sie = this->state.mstatus.SIE; auto s_enabled = this->reg.PRIV < PRIV_S || (this->reg.PRIV == PRIV_S && sie); diff --git a/src/iss/arch/riscv_hart_mu_p.h b/src/iss/arch/riscv_hart_mu_p.h index 5092813..8f4818b 100644 --- a/src/iss/arch/riscv_hart_mu_p.h +++ b/src/iss/arch/riscv_hart_mu_p.h @@ -401,7 +401,7 @@ template void riscv_hart_mu_p::chec bool mstatus_mie = this->state.mstatus.MIE; auto m_enabled = this->reg.PRIV < PRIV_M || mstatus_mie; auto enabled_interrupts = m_enabled ? ena_irq : 0; - + this->reg.pending_trap = 0; if(enabled_interrupts != 0) { int res = 0; while((enabled_interrupts & 1) == 0) {