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

Reply via email to