Table 1 shows the layout of the XPLINK interface. See z/OS Language Environment Vendor Interfaces for additional information about register usage and conventions, especially for details about passing parameters with XPLINK. For information on the registers which are saved in the register savearea of the XPLINK stack frame see z/OS Language Environment Programming Guide.
| Non-XPLINK | XPLINK | |
|---|---|---|
| Stack Pointer | Reg 13 | Reg 4 (biased) |
| Return Address | Reg 14 | Reg 7 |
| Entry point on entry | Reg 15 | Reg 6 (not guaranteed; a routine may be called via branch relative) |
| Environment | Reg 0 (writeable static) | Reg 5 |
| CAA Address | Reg 12 | Reg 12 |
| Input Parameter List | address in R1 | Located at fixed offset 64 ('40'x) into the caller's stack frame (remember the 2K bias on R4). Additionally, any of General Registers 1, 2, and 3, and Floating Point Registers 0, 2, 4, and 6, may be used to pass parameters instead of the caller's stack frame. |
| Return code | Reg 15 | R3 (extended return value in R1,R2) |
| Start address of callee's stack frame | Caller's NAB value | Caller's Reg 4 - DSA size |
| End address of callee's stack frame | Caller's NAB value + DSA size | Caller's Reg 4 |
| Where caller's registers are saved |
|
|