Fix jump target being unstable during a CIR-locked branch-to-self on a partial predicted branch match, due to the addr_is_regoffs decode not being tied off.

This commit is contained in:
Luke Wren 2022-06-25 20:07:43 +01:00
parent 8ef9d77be8
commit 173f5dba9d
1 changed files with 5 additions and 4 deletions

View File

@ -347,16 +347,17 @@ always @ (*) begin
else if (d_invalid && !d_starved) else if (d_invalid && !d_starved)
d_except = EXCEPT_INSTR_ILLEGAL; d_except = EXCEPT_INSTR_ILLEGAL;
end end
if (cir_lock_prev) begin if (partial_predicted_branch) begin
d_branchcond = BCOND_NEVER;
end else if (partial_predicted_branch) begin
d_addr_is_regoffs = 1'b0; d_addr_is_regoffs = 1'b0;
d_branchcond = BCOND_ALWAYS; d_branchcond = BCOND_ALWAYS;
end end
if (cir_lock_prev) begin
d_branchcond = BCOND_NEVER;
end
end end
endmodule endmodule
`ifndef YOSYS `ifndef YOSYS
`default_nettype wire `default_nettype wire
`endif `endif