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