| |||
| Home > Level 1 Memory System > Program flow prediction > Static predictor | |||
Branches must be resolved one time to be predicted by the dynamic predictor. To accelerate cold startup of code, the Cortex-A15 processor includes a static predictor that detects branches in the code stream as follows:
direct unconditional
branches, B immediate, are predicted taken
direct unconditional call-type branches, BL
immediate and BLX immediate, are predicted taken,
and the r14 value is pushed on the return stack
direct conditional backwards branches, BCC
immediate, are predicted taken
unconditional return-type branches, see Return stack predictions, are predicted taken and the target is popped from the return stack.
To avoid potential illegal speculation, the static predictor is disabled when the MMU is disabled. The static predictor does not predict return stack pops with r9 base register in ThumbEE state.