On Tue, 6 Aug 2013 16:35:58 -0400, John Parke wrote:

>The prolog code I am using is sample code from IBM...
>
>The sample code executes:
>
>LLILH 12,X'C6F4'
>OILL  12,X'E2C1'
>ST    12,4(,13)
>
>Which is IBM's way of marking savearea with "F4SA".

This may be the way that Metal C does it, but it is not the way it is
documented in the Assembler Services Guide, which is the authoritative
reference for linkage conventions.

The above fragment might do the correct thing, depending upon when the
above sequence is included in the code.  I know that Metal C was doing
it incorrectly a few years ago and it is my understanding that their
code has since been changed, but I don't know when.

"F4SA" must be stored in the new save area.  In other words, the above
sequence does the correct thing only if it is AFTER register 13 is
loaded with the address of the new save area.  If you store it in the
caller's save area, you will cause a problem when your caller tries to
return to its caller.

--
Tom Marchant

Reply via email to