mirror of
https://github.com/antonblanchard/microwatt.git
synced 2026-01-13 07:09:54 +00:00
execute1: Fix writing LR for bdnzl/bdzl instructions
Branch instructions which do a redirect and write both CTR and LR were not doing the write to LR due to a logic error. This fixes it. Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This commit is contained in:
parent
1037c6aa2e
commit
27ac74a341
@ -1131,10 +1131,16 @@ begin
|
||||
if e_in.insn_type = OP_FETCH_FAILED then
|
||||
do_trace := '0';
|
||||
end if;
|
||||
end if;
|
||||
|
||||
elsif r.f.redirect = '1' then
|
||||
-- The following cases all occur when r.busy = 1 and therefore
|
||||
-- valid_in = 0. Hence they don't happen in the same cycle as any of
|
||||
-- the cases above which depend on valid_in = 1.
|
||||
|
||||
if r.f.redirect = '1' then
|
||||
v.e.valid := '1';
|
||||
elsif r.lr_update = '1' then
|
||||
end if;
|
||||
if r.lr_update = '1' then
|
||||
v.e.exc_write_enable := '1';
|
||||
v.e.exc_write_data := r.next_lr;
|
||||
v.e.exc_write_reg := fast_spr_num(SPR_LR);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user