SPRAC71B February 2019 – October 2023
The registers that may be used to pass arguments include R0-3 (32-bit float arguments for devices that support FPU), ACC:P (64-bit arguments), ACC (32-bit arguments, XAR4 and XAR5 (pointer arguments), and AL and AH (16-bit arguments). The first argument of each type is placed in the register for that type, and remaining arguments of that type are placed on the stack.
On devices with FPU64 support, double precision floats (64-bit) are passed in registers. On devices without FPU64 support, doubles are passed by reference.
See "How a Function Makes a Call" in the TMS320C28x Optimizing C/C++ Compiler User's Guide (SPRU514).