At 09:46 -0500 on 09/15/2010, Tom Marchant wrote about Re: z/OS V1.12 differences and z196 (the new mainframe) imp:

On Wed, 15 Sep 2010 08:00:07 -0400, Robert A. Rosenberg wrote:

If the 64-bit program calling the 24/31 bit program wants to insure
the integrity of the high end of the registers, it is ITS
responsibility to save them around the call.

That is incorrect.  As clearly documented in the Assembler Services
Guide,

<quote>
Unless otherwise defined by the individual interface, the calling
program should expect, upon return, that 
- The low halves (Bits 32-63) of GPRs 2 through 13 are unchanged 
- The high halves (Bits 0-31) of GPRs 2 through 14 are unchanged
</quote>

Please reread my statement. I am talking about an 64-bit program calling a 24/31-bit program (legacy or not) NOT just making a system call. The only way to insure that the high end of the registers are preserved after the return to the 64-bit program is to restore them after the return. Otherwise the 24/31-bit program may use the high ends (such as for arithmetic) but not bother to do the preservation itself.

 >So long as the called program
wants a old-style Format 1 Save area, the high end is subject to
being altered.

There is no such thing as a format 1 save area.  You are referring
to a standard 72-byte save area.

Yes I mean the standard 72-bute SA. I thought it was documented as a Format 1 SA but did not have a word0 eye-catcher/magic-key.

--
Tom Marchant

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to