When I first saw "Complex immediate fields", I thought of this code one of our
emulation macros used to generate:
CGIJL R01,132-(L'BKwa_Module+1+L'BK_LPAOS+1),BK250
+ CGHI R01,(1-((((132-(L'BKwa_Module+1+L'BK_LPAOS+1))-((132-(L'X
+ BKwa_Module+1+L'BK_LPAOS+1))/256)*256)+256-((((132-(L'BKX
+ wa_Module+1+L'BK_LPAOS+1))-((132-(L'BKwa_Module+1+L'BK_LX
+ PAOS+1))/256)*256)+256)/256)*256)/128))*(((132-(L'BKwa_MX
+ odule+1+L'BK_LPAOS+1))-((132-(L'BKwa_Module+1+L'BK_LPAOSX
+ +1))/256)*256)+256-((((132-(L'BKwa_Module+1+L'BK_LPAOS+1X
+ ))-((132-(L'BKwa_Module+1+L'BK_LPAOS+1))/256)*256)+256)/X
+ 256)*256)+((((132-(L'BKwa_Module+1+L'BK_LPAOS+1))-((132-X
+ (L'BKwa_Module+1+L'BK_LPAOS+1))/256)*256)+256-((((132-(LX
+ 'BKwa_Module+1+L'BK_LPAOS+1))-((132-(L'BKwa_Module+1+L'BX
+ K_LPAOS+1))/256)*256)+256)/256)*256)/128)*((((132-(L'BKwX
+ a_Module+1+L'BK_LPAOS+1))-((132-(L'BKwa_Module+1+L'BK_LPX
+ AOS+1))/256)*256)+256-((((132-(L'BKwa_Module+1+L'BK_LPAOX
+ S+1))-((132-(L'BKwa_Module+1+L'BK_LPAOS+1))/256)*256)+25X
+ 6)/256)*256)-256)+((132-(L'BKwa_Module+1+L'BK_LPAOS+1))+X
+ 2147483520)*0+((132-(L'BKwa_Module+1+L'BK_LPAOS+1))-2147X
+ 483520)*0 Emulated z10 CGIJL instruction
+ JL BK250 ...
Robert Ngan
DXC Luxoft
-----Original Message-----
From: IBM Mainframe Assembler List <[email protected]> On Behalf
Of Seymour J Metz
Sent: Friday, March 29, 2024 11:57
To: [email protected]
Subject: Complex immediate fields
Back in he Assembler XF era I would code something like
LA R0,L'DEST
LA R1,DEST
XR R15,R15
ICM R15,8,=C' '
MVCL R0,R14
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?
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר