mirror of
https://github.com/antonblanchard/microwatt.git
synced 2026-01-13 15:18:09 +00:00
execute1: Ease timing on redirect_nia
This eliminates a dependency of r.f.redirect_nia on the carry out from the main adder in the case of a conditional trap instruction. We can set r.f.redirect_nia unconditionally, even if no interrupt is generated. Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This commit is contained in:
parent
31587affb3
commit
9160e29c56
@ -619,12 +619,12 @@ begin
|
||||
end loop;
|
||||
else
|
||||
-- trap instructions (tw, twi, td, tdi)
|
||||
v.f.redirect_nia := std_logic_vector(to_unsigned(16#700#, 64));
|
||||
-- set bit 46 to say trap occurred
|
||||
ctrl_tmp.srr1(63 - 46) <= '1';
|
||||
if or (trapval and insn_to(e_in.insn)) = '1' then
|
||||
-- generate trap-type program interrupt
|
||||
exception := '1';
|
||||
v.f.redirect_nia := std_logic_vector(to_unsigned(16#700#, 64));
|
||||
-- set bit 46 to say trap occurred
|
||||
ctrl_tmp.srr1(63 - 46) <= '1';
|
||||
report "trap";
|
||||
end if;
|
||||
end if;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user