At 08:40 AM 12/10/2005, you wrote:
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

That solution would not work in the example given because R9 was being used as the base register, not R15.

Steve Wiegand



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

----------------------------------------------------------------------
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