On Mon, 2 Aug 2010 15:34:00 -0600, Steve Comstock
<[email protected]> wrote:

>[...] Peter Relson

Now quoting from the latest Assembler Services Guide, page 13
(Chapter 2)

   Example of F5SA
[...]
   * Begin exit code
            LGR   1,13                        Copy my savearea address
            LMH   2,14,SAVF5SAG64HS2-SAVF5SA(13)
   * Restore high halves
            LG    13,SAVF5SAPREV-SAVF5SA(,13)
   * Restore caller’s savearea address
            FREEMAIN RU,A=(1),LV=SAVF5SA_LEN  Free my reentrant savearea
            SLR   15,15                       Set return code of zero
            L     14,SAVGRS14-SAVER(,13)      Restore caller’s R14
            LM    2,12,SAVGRS2-SAVER(13)      Restore caller’s R2-R12
            BR    14                          Return to caller

The documentation for FREEMAIN does not say that the SVC has any
obligation to preserve the high half of R14.

In general, programs are required to preserve the high half of R14,
but the FREEMAIN documentation specifically states that register 14
is used as a work register by the system. Therefore, it shouldn't
be obliged to preserve its high half, right?

>Kind regards,
>
>-Steve Comstock
>The Trainer's Friend, Inc.
>
>303-393-8716
>http://www.trainersfriend.com
>
>* To get a good Return on your Investment, first make an investment!
>   + Training your people is an excellent investment

Justin R. Bendich
[email protected]

Reply via email to