This CWI is invoked from a non-XPLINK routine running on the upward-growing stack. It is used to invoke an XPLINK routine that runs on the downward-growing stack. It performs stack swapping, moves the parameter list, and loads appropriate parameters into registers before invoking the routine. After the routine returns, it will adjust the return value and swap the stacks back.
Linkage | Input/Output | Register | Used for |
---|---|---|---|
Standard | Input Registers | R0 | Function descriptor |
R1 | Parameter List | ||
R2 - R11 | Not used | ||
R12 | CAA address | ||
R13 | Caller's DSA | ||
R14 | Return address | ||
R15 | Entry point (CEEVROND) | ||
Output Registers | R0 | Extended return value | |
R1 - R14 | Unchanged | ||
R15 | Return value | ||
FASTLINK | Input Registers | R0 | Function descriptor |
R1 - R3 | Parameters | ||
R4 - R11 | Not used | ||
R12 | CAA address | ||
R13 | Caller's DSA | ||
R14 | Return address | ||
R15 | Entry point (CEEVROND) | ||
NAB + BC | Parameter list | ||
Output Registers | R0 | Not preserved | |
R1 - R3 | Return value | ||
R4 - R14 | Unchanged | ||
R15 | Not preserved |
L 15,CEECAACELV-CEECAA(,12) Address of CAA in R12
L 15,3408(,15)
BALR 14,15
BR 14