Another test:
Active Usings: None
Loc Object Code Addr1 Addr2 Stmt Source Statement
000000 00000 00004 1 NEGDISP CSECT
2 *
R:1 FFFFF0 3 USING X'7FFFFFF0',R1
000000 4132 1020 00010 4 LA R3,-X'7FFFFFF0'(R2)
5 *
6 YREGS
In either 24-bit or 31-bit mode, the result is mathematically
correct modulo address-range. In 64-bit mode it's arguably
wildly incorrect. This is an almost inevitable consequence
of using 32-bit arithmetic in the assembler. The address
resolution probably generated an integer overflow status. But
to report it as an error would violate compatibility with IEV90
and prohibit a correct result in narrower addressing modes.
and the assembler can't infer at assembly time which addressing
mode will be in effect when the instruction is executed. Is
it worth a footnote in the LRM?
-- gil