When looking at backends for moxie and ft32, which are cpus for which the return register is 32bits, TARGET_ RETURN_IN_MEMORY is implemented such that the function value is returned in a register even when its size is 64bits. ie: https://github.com/gcc-mirror/gcc/blob/gcc-8_3_0-release/gcc/config/ft32/ft32.c#L63 https://github.com/gcc-mirror/gcc/blob/gcc-8_3_0-release/gcc/config/moxie/moxie.c#L60 Any idea why it is implemented that way ?