> On current hardware there is an IILF (LFI) instruction, and I would like to
> use it instead of the XR/ICM sequence. I consider
>
>          LFI   R15,X'40000000'
>
> to be ugly, and would like to be able to either use an immediate field
> combing CL1 and XL3 pieces or to refer to an EQU defining that combination.
> Is there any way to do that in HLASM?
 
For a space, the simplest method is:
 
         LFI   R15,C' '*X'1000000'
 
For a general byte value, if you want to use a macro or similar,
you need to avoid arithmetic overflow, for example:
 
         MACRO
&NAME    LC1   &R,&C
&NAME    LFI   &R,(&C-((&C)/128)*256)*X'1000000'
         MEND
...
         LC1   R15,C'9'
...
         LC1   R1,X'FF'
 
The architects agreed to our request that HLASM could add the
more helpful alias LFI for IILF as part of the Z16 instruction
set in 2022, and they also added LLGFI an an alias for LLILF.
We were subsequently asked why we hadn't added LLGHI as an alias
for LLILL, so we will probably add that in a future upgrade.
 
Jonathan Scott, HLASM
IBM Hursley, UK

Reply via email to