A function procedure returns its result value to the calling procedure in one of three ways, depending upon the data type: in register GR28, in register FR4, or in a temporary storage area provided by the caller.
If the result is returned in a temporary storage area, the calling procedure provides the temporary area and passes its address in GR28.