"Maciej W. Rozycki" <ma...@codesourcery.com> writes:
>> > I disabled 64 bit FPU instructions by "-msoft-float". This works, but
>> > using "-msingle-float" fails. This would be the better
>> > configuration. There are still 64 bit FPU instructions used (e.g. "dmfc1
>> > $2,$f0" when using "long double" multiplication). So "-msingle-float"
>> > doesn't seem to work on generic mips64-linux-gnu.
>> 
>> Right.  That combination hasn't really been defined.  What happens
>> for plain doubles?  Do you pass those in FPRs or GPRs?
>
>  IIUC the R5900 has an FPU that is functionally the same as that of the 
> R4640/R4650.  If that is the case, then there is no way to pass doubles in 
> FPRs -- there is no room to store the upper halves.

My point was that you could pass them in consecutive FPRs, like n32 does
for long double.  There's no architectural support for long double either,
but the decision was still to pass them in FPRs rather than GPRs.

I'm not saying that that's a sensible precendent to copy.  I was just
using it as one example of why an ABI has to be defined.

Richard

Reply via email to