I think that a lot of this has been discussed before. For debugging purposes, I like 1 base reg. It shows where the active module starts and MVS diagnostics displays offset to this reg. You could put your literal pool close to the beginning of your base reg which would not require a change to the #LAL. Otherwise, you can use the LAY instruction in the macro to reference the data.
You shouldn't use LARL for literals (=c'...') because halfword alignment could easily be lost and how you achieved halfword alignment might be confusing to new comer's. As an alternative to using the literal pool, you could put the data inline (use BRAL R2,0 followed by the DC for the data without the "="). Jon Perryman. >________________________________ > From: John P. Hrtmann <[email protected]> > >CMS Pipelines ships the macro #LAL. One would write: > > #LAL 2,'a message' > >This expands to a LA 2,=c'...' and LA 3,<length>. As the constant goes >into a literal pool I can substitute LARL for even length literals >without adding failures (unless the literal pool is more than 4G away). > >I guess there is the additional wrinkle that the target must be on a >halfword boundary, but I can add a trailing blank to a literal that is >an odd number of characters (as long as I don't mess up the length). > >Any suggestions? > > >
