This is a bug that you can report to IBM. The immediate value is 8 bits so it should have the same restrictions as used with the CLI instruction.
I couldn't find the CIJL instruction but the code implies this was a CIJ instruction (ECxx xxxx xx7E). I assume CIJL must be forcing mask of 4 and allowing 3 operands. . Regards, Jon Perryman. ________________________________ From: Robert Ngan <[email protected]> To: [email protected] Sent: Tue, September 25, 2012 5:38:02 PM Subject: Immediate value range on [arithmetic] COMPARE and JUMP I am playing with the COMPARE AND JUMP instructions to see what range of immediate values are accepted by the assembler. The compare logical and jump instructions are restricted to terms in the 0-255 range which is what I had expected. However, the [arithmetic] compare and just accepts ANY valid self defining term, and silently truncates that value to to the rightmost 8-bits! Examples: 00000032 ECE4 0018 7F7E 00000062 231 CIJL R14,-129,AA999 00000038 ECE4 0015 807E 00000062 232 CIJL R14,-128,AA999 0000003E ECE4 0012 FF7E 00000062 233 CIJL R14,255,AA999 00000044 ECE4 000F 007E 00000062 234 CIJL R14,256,AA999 0000004A ECE4 000C F47E 00000062 235 CIJL R14,500,AA999 00000050 ECE4 0009 787E 00000062 236 CIJL R14,X'12345678',AA999 00000056 0000 0000 0000 00000000 237 CIJL R14,X'123456789',AA999 ** ASMA146E Self-defining term too long or value too large - X'123456789',AA999 ** ASMA435I Record 51 in SYS12269.T191312.RA000.RXN.R1B80579 on volume: DCIA23 0000005C ECE4 0003 F47E 00000062 238 CIJL R14,C'1234',AA999 I think any expression value outside the range -128:255 (or even stricter, -128:127) should be flagged by the assembler. Would you consider this behavior a bug or a feature? Robert Ngan CSC Financial Services Group
