Highly Accurate Subroutine Stack Prediction Mechanism
Original Publication Date: 1986-Mar-01
Included in the Prior Art Database: 2005-Mar-08
A subroutine stack is a push-down stack that is used for guessing the return addresses of subroutine calls. Subroutine calls are usually implemented with the instructions BAL, BALR, BAS, and BASR. Returns are performed via a branch on condition register (BCR) instruction. The calling instruction specifies a register into which the next sequential address to the calling instruction is loaded (the link register), and it specifies an entry point into the subroutine by returning to the address specified in this register, i.e., the next sequential to the caller (or link). It has been determined that if a stack is kept onto which the link register is pushed at the time of a call, it is frequently the case that a subsequent BCR will branch to the address given by the top entry on the stack.