"When control is returned to your control section from the called control section, registers 2-14 contain the same information they contained when control was passed, as long as system conventions are followed."
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Assembler List [[email protected]] on behalf of Ngan, Robert (DXC Luxoft) [[email protected]] Sent: Monday, November 29, 2021 3:57 PM To: [email protected] Subject: Re: Base-less macros The assembler services guide doesn't specify what is in (bottom half of) R14 upon return. Also, on return to an AMODE(64) routine via BASSM/BSM, R14 would have the low-order bit set. Robert -----Original Message----- From: IBM Mainframe Assembler List <[email protected]> On Behalf Of Paul Gilmartin Sent: Monday, November 29, 2021 14:01 To: [email protected] Subject: Re: Base-less macros On Nov 29, 2021, at 12:41:51, Ngan, Robert (DXC Luxoft) wrote: > > DON'T DO THAT! > I had to find/redo all our code that did this when our subroutine return > logic was changed to use a BIC instruction. > Which of you violated standard linkage conventions? My understanding is that R14 is expected to point to the instruction after the CALL; R15 to the ENTRY point. Either may be changed by an embedded CALL and should be treated as volatile. RETURN should use LM to retrieve the value of R14, etc. > -----Original Message----- > From: Steve Smith > Sent: Thursday, November 25, 2021 13:49 > > My suggestion of using R14 for the base was because it's already set by the > call to the subroutine. -- gil
