SPRU514Y August 2001 – June 2022
The CLA compiler supports multiple nested levels of function calls. The CLA compiler also supports calling functions with more than two arguments.
Pointer arguments are passed in MAR0 and MAR1. 32-bit values are passed in MR0, MR1, and MR2. 16-bit values are passed in MR0, MR1, and MR2. Any further arguments are passed on the function frame (function-local scratchpad space), starting at offset 0.
All registers except for MR3 are saved on call. MR3 is saved on entry.
When interfacing with CLA assembly language modules, use these calling conventions to interface with compiled CLA code.