Skip to content

Precursor to PC hardening, multi cycle jumps and branches

Created by: silabs-oysteink

Jumps (including mret) and branches are now treated as multi cycle / multi operation instructions.

These instructions will now spend two cycles in ID, EX and WB. A 'last_op' bit has been added to the id_ex_pipe and ex_wb_pipe, this bit will be low for the first cycle of jumps and branhces, and high for the second cycle and any other instructions. wb_valid will only go high for instructions with last_op=1.

  • Passes ci_check.

  • Not SEC clean. -- Non-taken branches gets one cycle extra penalty -- Jumps will get different stall conditions making it non-SEC

Signed-off-by: Oystein Knauserud Oystein.Knauserud@silabs.com

Merge request reports

Loading