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

Reply via email to