Here is an example of what I was trying to describe:
ABLE CSECT ,
EXTRN IEFBR14
USING ABLE,R7
LARL R15,IEFBR14
BRC 0,IEFBR14
LHI R15,(IEFBR14-ABLE)
LHI R15,(SECOND-FIRST)
OFFSET DC A(IEFBR14-ABLE)
FIRST DC F'1'
SECOND DC F'3'
And here are some snippets from the assembly listing:
00000000 C0F0 0000 0000 00000000 22 LARL R15,IEFBR14
00000006 A704 0000 00000000 23 BRC 0,IEFBR14
0000000A 0000 0000 00000000 24 LHI R15,(IEFBR14-ABLE)
** ASMA032E Relocatable value or unresolved symbol found when absolute value
required -
(IEFBR14-ABLE)
** ASMA435I Record 24 in RAICER.TEMP.SOURCE(SIMPLE) on volume: DV2D19
0000000E A7F8 0004 00000004 25 LHI R15,(SECOND-FIRST)
00000024 00000000 30 OFFSET DC A(IEFBR14-ABLE)
00000028 00000001 31 FIRST DC F'1'
0000002C 00000003 32 SECOND DC F'3'
Relocation Dictionary
Pos.Id Rel.Id Address Type Action
00000004 00000006 00000002 RI 4 +
00000004 00000006 00000008 RI 2 +
00000004 00000004 00000024 A 4 -
00000004 00000006 00000024 A 4 +
Statements 22 and 23 cause entries to be placed in the Relocation
Dictionary which indicate the Relocation Type is Relative Immediate
and the size (in bytes) of the corresponding item to be adjusted by
the relocation processing is four and two, respectively.
For statement 24, entries in the Relocation Dictionary would be
required in order to compute the Absolute Value of the expression
during relocation processing, much like the RLD entries necessary to
resolve the same expression for statement 30.
And, yes, binder support is required for this, much like the binder
support needed to handle the RLD items for statements 22 and 23.
Bob