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. >
