Exemplary methods, systems, and products are described that operate
generally by moving subroutine return address protection to the processor
itself, in effect proving atomic locks for subroutine return addresses
stored in a stack, subject to application control. More particularly,
exemplary methods, systems, and products are described that write protect
subroutine return addresses by calling a subroutine, including storing in
a stack memory address a subroutine return address and locking, by a
computer processor, the stack memory address against write access.
Calling a subroutine may include receiving in the computer processor an
instruction to lock the stack memory address. Locking the stack memory
address may be carried out by storing the stack memory address in a
protected memory lockword. A protected memory lockword may be implemented
as a portion of a protected content addressable memory.