Changing a 4-byte LA to a 6-byte LAY will not work for cases where a macro
expansion 'understands' and relies upon the length of what it is
generating and bases its generated code accordingly.
Are there such macros? Definitely (although not necessarily using "LA").

A simple, unrealistic, example is
         BC    7,*+8
         LA    1,4(,1)
         LR    0,1

Should it have used "*+8" instead of providing a label for the target? Of
course not, but that's how old macros did things.
There are other cases involving fullword alignment and CNOP that could
similarly be broken.

This is one reason why IEABRCX "works" -- it is replacing 4-byte
instructions with 4-byte instructions.

Peter Relson
z/OS Core Technology Design

Reply via email to