On 6/13/2016 3:26 PM, Charles Mills wrote:
Makes sense. It does seem to me that I have seen code -- kids, don't try this
at home -- that used R14 as a temporary base register on return from a call.
You know, back in the pre-branch-relative days when you could be desperate for
a base register.
Actually, this technique is even more useful in the post relative branch
days because there is no code base for a branch table based on return
code e.g.:
JAS R14,routine Call local subroutine
B 4(R15,R14) Take appropriate branch
J retcde00 .Return code = 0
J retcde04 .Return code = 4
J retcde08 .Return code = 8
or
BASSM R14,R15 Call external routine
B 3(R15,R14) Take appropriate branch
J retcde00 .Return code = 0
J retcde04 .Return code = 4
J retcde08 .Return code = 8
--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
http://www.phoenixsoftware.com/
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN