The compiler uses the scratch registers to return values to the caller.
- The eight-bit typpe char is returned in register R27.
- The 16-bit types int, short, enumerations, and any pointer type are returned in R27:R26 with R27 holding the most significant byte of the result and R26 the least significant byte.
- The 32-bit types long and float (and double if compiled with double equivalent to float) are returned in the register quadr R27-R24, with R27 holding the most significant byte of the result and R24 the least significant byte.
- The 64-bit types long long and double are returned in the register set R27-R20 with R27 holding the most significant byte of the result and R20 the least significant byte.