Clears the list of linkage pairs maintained by the $LINKAGE_PAIR
and $CALL macros.
Format
$RESET_LP_LIST
1 – Description
The $LINKAGE_PAIR and $CALL macros maintain an assembly-time
list of linkage pairs that the $LINKAGE_PAIR macro has stored in
the linkage section. This list enables $LINKAGE_PAIR and $CALL
to use the same linkage pair for multiple routine calls to the
same routine. You can clear this list of linkage pairs with the
$RESET_LP_LIST macro.
Under normal circumstances, you do not need to clear the linkage-
pair list. Some of the times when you do are as follows:
o When you change the psect assigned to the linkage section.
o If distance from the linkage section of your current routine
falls more than 32K bytes beyond where the linkage pair has
been stored.
2 – Example
; Define the linkage section psect for routines A & B
$LINK$ = "AB_LINK,NOEXE,OCTA"
$ROUTINE A, KIND=STACK
.BASE R27, $LS
$CALL D ; Linkage pair is stored in A's linkage
; section and put on the assembly-time list
$RETURN
$END_ROUTINE A
$ROUTINE B, KIND=STACK
.BASE R27, $LS
$CALL D ; Linkage pair is found on the list,
; and used from A's linkage section
$RETURN
$END_ROUTINE B
; Define a different linkage section for routine C
$LINK$ = "C_LINK,NOEXE,OCTA"
; Linkage pairs that are on the list are in A & B's linkage
; section, which is not easily accessible by C. Therefore,
; clear the list.
$RESET_LP_LIST
$ROUTINE C, KIND=STACK
.BASE R27, $LS
$CALL D ; Linkage pair is stored in C's linkage
; section and put on the assembly-time list
$RETURN
$END_ROUTINE B