Over on IBM-MAIN there is a discussion on linkage conventions, which was
started by me, initially about changing an HLASM program to be RENT. But
all the back and forth about the "right way" to implement a linkage
convention has made we want a couple of new instructions, which exist on
many other machines. A hardware PUSHR and POPR (R suffix to avoid conflict
with existing PUSH & POP) which can PUSH and POP the general and access
registers onto a stack. This would require a hardware stack, similar to the
Linkage Stack used by PC/PR/BAKR, but one which can be dynamically expanded
(cause a PIC which the OS, z/OS in my case, would trap and then get a new
area and chain it to the old area). The PUSH and POP could only use this
stack, which I guess would be pointed to my a CR? So the stack itself could
be in key 0 (or maybe other non-key 8/9 storage), AMODE(64) storage.
Perhaps LSQA. This would prevent the ever popular (with hackers) stack
corruption and overflow condition by normal user code.

Why did I bring this up, beyond my usual liking for talk? Mainly because it
would help "clean up" all the problems with the current linkage convention.
I.e. what format is the caller's save area? Is there one? Is it big enough
to store all the grande registers plus access registers? This latter is
important to me because I write code which uses those and I need somewhere
to store the caller's. Yes, I guess that I could save the minimal number of
registers and do a STORAGE OBTAIN to get the "real" save area. But then I
don't have a way to communicate to the dump format routine where the
caller's registers really are. Plus, I would hope that the PUSHR/POPR
instruction (assuming no stack over/under flow) would be more CPU efficient
than a bunch of STORAGE OBTAIN invocations. And might even make some things
easier to code, such as SRB routines.

Am I off in la-la land again? Do I need more caffeine? Or less?

--
This is a test of the Emergency Broadcast System. If this had been an
actual emergency, do you really think we'd stick around to tell you?

Maranatha! <><
John McKown

Reply via email to