SPRU514Z July 2001 – October 2023 SM320F28335-EP
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.