From 4073aa5ffd915be31a67c735484be8608d714be5 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Mon, 29 Sep 2025 16:12:40 +1000 Subject: [PATCH] execute1: Fix setting HEIR and FSCR[IC] on interrupts Code in the execute1_actions process that handles illegal and facility unavailable interrupts was setting actions.se.set_heir or actions.se.set_ic, but then because actions.exception was also set, the contents of actions.se were ignored, meaning that HEIR or FSCR[IC] were not getting updated. To fix this, execute1_1 now conditions use of those fields on valid_in rather than go. Signed-off-by: Paul Mackerras --- execute1.vhdl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/execute1.vhdl b/execute1.vhdl index 85b4a7a..fe608c4 100644 --- a/execute1.vhdl +++ b/execute1.vhdl @@ -1747,6 +1747,8 @@ begin if valid_in = '1' then v.prev_op := e_in.insn_type; v.prev_prefixed := e_in.prefixed; + v.se.set_heir := actions.se.set_heir; + v.se.write_ic := actions.se.write_ic; end if; -- Determine if there is any interrupt to be taken