General register usage at entry to callable services
The following registers must have the prescribed contents when control reaches the entry point of
a Language Environment callable service. Calls
that remain within the same language do not need to adhere to the register conventions described as
follows. ILC calls might or might not adhere to these conventions depending upon the languages
involved. A library routine that accommodates the differences in the linkage conventions can be used
in some ILC cases.
- R0
- Reserved
- R1
- Must point to the parameter list or be zero if no parameter list exists
- R2–R11
- Not referenced by Language Environment; caller's values are passed through transparently
- R12
- Must point to the CAA upon entry to an external routine; R12 does not have to point to the CAA within a routine
- R13
- Must point to the caller's DSA
- R14
- The return address
- R15
- The address of the called entry point