On Thu, 9 Mar 2017, Bill Schmidt wrote: > The one statement I've made that I'm not quite confident is that > __float128 is an alias for _Float64x on hppa HP-UX. This was not > clear in the original text, so I'd appreciate confirmation or > correction on this point.
It can't simultaneously be an alias for _Float128 and _Float64x (those are always distinct types, which may or may not be ABI-equivalent). Actually, in pa/pa.c, __float128 is defined as an alias for long double (not _Float128 or _Float64x). On x86/x86_64, and powerpc (when supported), and non-HP-UX ia64, it's an alias for _Float128; on ia64-hpux it's an alias for long double. > +@itemize @bullet > +@item @code{__float128} is available on i386, x86_64, IA-64, and > +hppa HP-UX, as well as on PowerPC 64-bit Linux targets that enable "GNU/Linux". > +@code{_Float64} and @code{Float32x} types are supported on all systems @code{_Float32x} (pre-existing issue). > +@code{TFmode} maps to a 128-bit floating-point type, which is usually > +@code{__float128}. On PowerPC, where a transition is underway for > +@code{long double} from the @code{__ibm128} type to @code{__float128} > +in future releases, @code{TFmode} refers to the type that represents > +@code{long double} during compilation. @code{KFmode} is always > +@code{__float128}, @code{IFmode} is always @code{__ibm128}, and @code{TFmode} > +will always be one or the other. Machine modes are largely an implementation detail (only user-visible using the mode attribute); I'm not convinced this documentation belongs here at all (although a limited amount of documentation of declaring with mode attributes is needed to describe how to declare the complex ibm128 type). -- Joseph S. Myers jos...@codesourcery.com