The function return value is placed in the same register as the usual first argument register, based on its type and size.
- 16-bit results are returned in the AL register.
- 32-bit results are returned in the ACC register.
- 64-bit results are returned in the ACC:P register pair.
- Structs returned by reference are returned in *XAR6.
- 32-bit float results are returned in R4H for FPU32 and FPU64.
- 64-bit double results are returned in R4 for FPU64. If FPU64 is not supported, double results are returned by reference.
Aggregates larger than 32 bits are returned by reference.
See "How a Called
Function Responds" in the TMS320C28x Optimizing C/C++ Compiler User's Guide
(SPRU514).