The compiler uses the scratch registers to return values to the caller.
- The eight-bit and 16-bit type char, int,
short, enumerations, and any pointer type are returned in
R15.
- The 32-bit types long and float (and double
if compiled with double equivalent to float)
are returned in the register pair R15:R14, with R15 holding
the most significant word of the result and R14 the least
significant word.
- The 64-bit types long long and double
are returned in the register quad R15:R14:R13:R12 with R15 holding
the most significant word of the result and R12 the least
significant word.