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 R12 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.