The LM will work just fine--the address is computed from R9 long before the
registers are loaded from that address.
The LH, however, is another story...
Bob
Paul Schuster wrote:
Hello:
The Principles of Operation states:
"An instruction can designate the same general
register both for address computation and as the
location of an operand. Address computation is
completed before registers, if any, are changed by
the operation."
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 above quote from the POO seems to imply that R9 will be valid, but this
code has abended intermittently on the LM instruction with R9 being the
bad address. (Code prior to this which is based on R9 works ok, so the
contents of R9 are good up to the point of the LM instruction.)
Thank you for any insight you can provide.
----------------------------------------------------------------------
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