Simplify interrupt-stack discipline
[riscv-isa-sim.git] / riscv / insns / sret.h
index e4d05023b6d4c83ab80c09157a4ec2fa4e4c30a3..ae841de93f19cc1111761e545780947f4d95fb41 100644 (file)
@@ -2,7 +2,7 @@ require_privilege(get_field(STATE.mstatus, MSTATUS_TSR) ? PRV_M : PRV_S);
 set_pc_and_serialize(p->get_state()->sepc);
 reg_t s = STATE.mstatus;
 reg_t prev_prv = get_field(s, MSTATUS_SPP);
-s = set_field(s, MSTATUS_UIE << prev_prv, get_field(s, MSTATUS_SPIE));
+s = set_field(s, MSTATUS_SIE, get_field(s, MSTATUS_SPIE));
 s = set_field(s, MSTATUS_SPIE, 1);
 s = set_field(s, MSTATUS_SPP, PRV_U);
 p->set_privilege(prev_prv);