On Sun, 15 Feb 2015 15:46:21 GMT, [email protected] wrote: >I stumbled across a small routine whose function is to issue a STIMER >and return to the caler, when the Time Limit Expires. What I found >interesting was the way this routine saved the return code.
Return code? The doc for STIMER says that R15 on return is always zero. >STIMER WAIT,DINTVL=WAITTIME .Wait till the end >L R13,SAVE+4 .Return to caller >ST R15,16(,R13) <===HERE >LM R14,12,12(R13) >BR R14 >. >. >Before restoring the callers registers, Register 15 >is stored in the Register 15 Slot of the Callers Save Area. >OR that is how it appears to me. >. >Has Anyone seen this technique ? Yes. >Any comments on using this technique ? I don't like it. IMO, it is not any simpler than the usual L R14,12(,R13) LM R0,R12,20(R13) and it certainly won't perform any better. Also, if the program ever needs to be changed to save the registers in a different way to allow the use of 64-bit registers, the code will need to be revised (unless F5SA or F8SA is used). -- Tom Marchant
