Firstly please provide the generated assembly listing so we can see the
object code and secondly have you compared the RLD and object code to that
produced by HLASM (l suspect they will be identical).
Keven
On Thu, Jul 2, 2020 at 6:44 PM -0500, "Dan Greiner" <[email protected]> wrote:
The following simple program illustrates address constants of various sizes:
RLDNFG CSECT
A DC AL1(H)
B DC AL2(G)
C DC AL3(F)
D DC AL4(E)
E DC AL5(D)
F DC AL6(C)
G DC AL7(B)
H DC AL8(A)
END
Assembling this code using z390, relocation-dictionary (RLD) entries are
generated only for the 2-, 3-, 4-, and 8-byte address constants. RLD entries
are not generated for the 1-, 5-, 6-, and 7-byte address constants.
Furthermore, in the generated listing (.PRN) file, the RLD entry for the 8-byte
address constant correctly indicates that it's an 8-byte address. However in
the generated object (.OBJ) file, the RLD record for 8-byte entry contains a
flag field of x'00'. According to "HLASM for z/OS, z/VM, & z/VSE: Programmer's
Guide, V1, R6" (SC26-4941-06), an RLD-entry flag byte of zero indicates a
1-byte address constant; the flag byte for an 8-byte address constant should be
X'4C'.
Being a z390 newbie, I wasn't quite certain what to expect ... but I was rather
gobsmacked to get this result. Is this a bug or a feature?