Implementing relative instructions into your macro's won't buy you much. In 
fact, you can skip this step until you make your programs optimized to using 
relative instruction by including "COPY IEABRC" at the beginning of the program 
will change offset branches into relative branches without modifying anything 
else.

SYSSTATE ARCHLVL=1 or 2 will also make many of the IBM macro's use relative 
instructions where possible (not all).

I'm not saying you shouldn't use relative instructions in macro's. I'm saying 
that you'll get value from modifying programs that have multiple base regs. If 
you don't regain any registers, then what value are you getting from relative 
instructions.

One of the modifications I like is to move the LTORG to physically occur at the 
beginning of the program so that your base reg still includes the program 
start. the advantage is that the PSW offset to the base reg matches the 
assembler listing. In addition, dumps will show the offset to that reg whereas 
the alternative is no offset or an offset that cannot be easily converted to an 
assembler listing or version of that program. I also like to limit the base reg 
to the end of the constants in the program so that you can identify where your 
program is not correctly using relative offsets.

Jon Perryman. 


>________________________________
> From: John McKown <[email protected]>
>
>
>Well, I don't _usually_ use the *+<some value>. I normally use a label with
>the &SYSNDX symbol embedded somewhere in it. But I didn't want to "muddy
>the waters", and instead make the point that the source operand itself did
>not, and possibly should not, be changed.
>

Reply via email to