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 <ASSEMBLER-LIST@LISTSERV.UGA.EDU> On Behalf 
Of Paul Gilmartin
Sent: Monday, November 29, 2021 14:01
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
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

Reply via email to