6.5.2. Return stack predictions

The return stack stores the address and the ARM or Thumb state of the instruction after a function-call type branch instruction. This address is the same as the link register value stored in r14. The following instructions cause a return stack push if predicted:

The following instructions cause a return stack pop if predicted:

The LDR instruction can use any of the addressing modes, as long as r13 is the base register. Additionally, in ThumbEE state, you can also use r9 as a stack pointer so the LDR and LDM instructions with pc as a destination and r9 as a base register are also treated as a return stack pop.

Because return-from-exception instructions can change the processor privilege mode and security state, they are not predicted. This includes the LDM(3) instruction, and the MOVS pc, r14 instruction.

Copyright © 2011 ARM. All rights reserved.ARM DDI 0438D