Use this system macro to reload the linkage data from the stack, reset the
stack pointer, and return to the calling control program (CP) routine.
This macro is used with other standardized linkage macros such as the CLNKC,
DLNKC, and SLNKC macros. See the following for more information about
these macros:
Format
- label
- A symbolic name can be assigned to the macro statement.
- BASE=R15|Rx
- The register specified, default R15, was used as the link-to register by
the calling routine (CLNKC).
- LINK=R14|Ry
- The register specified, default R14, will be used as the link register
from this routine. The calling routine used this register as its
link-from register.
- LOREG=Rn|NO
- Required. If a register Rn is specified, all registers,
beginning with the specified register, will be reset from the stack. If
NO is specified, no registers are reset from the stack.
- POP
- Specify one of the following:
- YES
- The stack register will be popped, that is, adjusted by the length of this
routine's stack area.
- NO
- The stack register will not be 'popped,' since there is no stack
area used by this routine and it does not call any routine.
Used in conjunction with the PUSH parameter on the SLNKC macro.
- PARMS=Rn|(Rm,...,Rn)
- This is optional. The register (or registers) specified by this
parameter will not be reset from the stack since it is assumed to
contain data.
Entry Requirements
- R13 must contain the stack address.
- The LINK= register must contain the address of the link-from
routine.
Return Conditions
The macro generates code to load the appropriate registers from the stack,
excluding the parameter registers. It adjusts the stack register by the
size of the stack area for this routine and returns to the calling routine via
the LINK register.
Programming Considerations
- This macro can be run on any I-stream.
- R13 must point to a valid stack area.
- This macro, in conjunction with the SLNKC macro, is used to manipulate the
stack register.
- The condition code setting is determined by the interface defined for the
routines using the linkage macros.
- The LOREG parameter must match with the corresponding parameter on the
SLNKC macro. If they do not match, the LOREG parameter is used on the
RLNKC macro.
- The POP parameter must match with the corresponding PUSH parameter on the
SLNKC macro. If they do not match, the POP parameter on the RLNKC macro
is used, but errors may occur if there is a mismatch on R13 usage.
- This macro is for use in the control program (CP) only.
Examples
None.