On Wed, Oct 06, 2021 at 07:42:31PM +0000, Joseph Myers wrote:
> On Wed, 6 Oct 2021, Segher Boessenkool wrote:
> > Soft float is not described in any formal ABI btw (well, except the
> > Power 32-bit embedded ABI :-) ) -- it is an compiler-internal affair.
> 
> It's fully documented in the unified 32-bit ABI document (under 
> ATR-SOFT-FLOAT conditionals).

That doc calls itself "Power Architecture?? 32-bit Application Binary
Interface Supplement 1.0 - Embedded".  That is the exception I meant.
Ignoring all the stuff I usually ignore it isn't very embedded, I agree,
it is more or less what is powerpc-linux or powerpc-elf.

With "not in any" I mean: not for other architectures either!  All archs
that do not say anything about floating point in their machine
description get a working sofware floating point (for binary32 and
binary64 currently).

> There's still some code in the compiler for a very old soft-float ABI for 
> binary128 long double (passing by reference, using _q_* libcall names).  I 
> don't really think it makes much sense to use that for future _Float128 
> support for soft-float (certainly not the _q_* libcalls), rather than 
> passing in four consecutive GPRs as is done for IBM long double for soft 
> float, but we could.

Maybe this harks back to POWER2 days?  If so, we probably should just
remove that code, we do not support anything else POWER2 anymore.


If we want to implement soft-float for binary128, it would be best to do
it the same for Power as for anything else.  That of course means we
have to *do* it for everything (or anything) else :-)

And, as long as I'm creating more work, we could do binary16 and
bfloat16 at the same time ;-)


Segher

Reply via email to