On 01/14/2017 02:29 PM, Cameron Kaiser wrote:
Oh my! You
couldn't have a subroutine that called another
subroutine, using their surroutine call/return instructions! I never
knew that!
Strictly speaking, that would still be true of any CPU that uses a
link
register instead of a stack for return addresses (most RISC CPUs including
PowerPC, ARM and MIPS; TMS 9900; etc). These architectures have to explicitly
save the return address in the LR as part of the callee function prologue
just as these older systems would have had to (or the equivalent operation).
Yes, this fits into the context of the System/360. I can't imagine how
much CPU time was wasted when people forgot to save R14 before calling a
deeper subroutine, causing an infinite loop.
Jon