That's why you usually omit R15 from the registers that are to be reloaded.
There are two solutions (at least) to this problem:
split the LM into a load for R14 and a LM which starts at R0 and 20(r13),
leaving R15 untouched, so you can put the return code into R15 before the reload, or: modify the contents of the savearea (16(r13) for R15) before doing the reload.

Kind regards

Bernd


Paul Schuster schrieb:

Thanks--I answered own question after looking at code again.

n Fri, 9 Dec 2005 16:01:38 -0800, Edward E. Jaffe
<[EMAIL PROTECTED]> wrote:

Paul Schuster wrote:
[snip]

Consider this code:

01988A 98EC 9464            19A98 42272          LM    R14,R12,CHKSU_SAVE
01988E 48F0 94A0            19AD4 42273          LH    R15,SURC
019892 07FE                       42274          BR    R14

R9 is being used as the base to restore registers 14-->12 from. Will R9 be
valid for the complete instruction, or will the new (restored) R9 be used
to restore the remaining registers 10--> 12?


The R9 value at entry to the above code fragment is used for the LM
instruction and the restored R9 is used for the LH instruction.


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

Reply via email to