I had a feeling someone would point out that technicality, so...

Let's not consider a temporarily-used-for-one-RX-instruction base
register to be the same thing as a program-wide base register  ;-)

Also, a "baseless" program is less likely to be register-constrained;
but, if it were, using "temp" R1 instead of, say R10, works just as
well.



http://www.compuware.com/
The contents of this e-mail are intended for the named addressee only. It 
contains information that may be confidential. Unless you are the named 
addressee or an authorized designee, you may not copy or use it, or disclose it 
to anyone else. If you received it in error please notify us immediately and 
then destroy it.

From: IBM Mainframe Assembler List
[mailto:[email protected]] On Behalf Of Paul Gilmartin
Sent: Wednesday, June 06, 2012 11:02 AM
To: [email protected]
Subject: Re: Base registers

On Jun 6, 2012, at 07:28, Watkins, Douglas wrote:

> Here's one way to do standard EXecute without a base register:
>
>         AHI   R2,-1               Minus 1 for EX
> *!not yetEXRL  R2,_EX_MVC_OUTPUT  (Move data to output buffer)
>         LARL  R10,_EX_MVC_OUTPUT  Move data to
>         EX    R2,0(,R10)           output buffer
>
Well, R10 looks like a base register to me.  If you're
critically register-constrained, this may be a problem.
You could likewise do:

    AHI   R2,-1               Minus 1 for EX
    BALR  R10,0
    EX    R2,EX_MVC_OUTPUT-*(,R10)

... in fewer bytes of code (if I got it right).

-- gil

Reply via email to