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