CEEVRONU — run on upward-growing stack
This CWI is invoked from an XPLINK routine
running on the downward-growing stack. It is used to invoke a non-XPLINK routine
that runs on the upward-growing stack. It performs stack swapping,
moves the parameter list, and stores appropriate parameters from registers
before invoking the routine. After the routine returns, it will adjust
the return value and swap the stacks back.
Input/Output | Register | Used for |
---|---|---|
Input Registers | R0 | Not used |
R1 - R3 | Parameters | |
R4 | Caller's stack pointer | |
R4 + 2112 | Parameter list | |
R5 | Function descriptor | |
R6 | Entry point (CEEVRONU) | |
R7 | Return address | |
R8 - R11 | Not used | |
R12 | CAA address | |
R13- R15 | Not used | |
Output Registers | R0 | Not preserved |
R1 - R3 | Return value | |
R4 | Unchanged | |
R5 - R6 | Not preserved | |
R7 - R15 | Unchanged |
- CEEVRONU
- Call this CWI interface as follows:
L 6,CEECAALEOV-CEECAA(,12) L 6,272(,6) BASR 7,6 DC X'4700' DC Y(signed offset/8 to entry marker or call descriptor)
This CWI will return control to its invoker at the return address:
BR 7
- Function descriptor
- A function descriptor that contains the entry point and writable static area address for the non-XPLINK routine to be invoked, or the actual function entry point.
- Parameter List
- The parameter list for the routine to be invoked.
Note: CEEVRONU has a stub called @@RONU.