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

Reply via email to