This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, doc] Revise GCC manual section 6.11, Additional Floating Types
- From: Joseph Myers <joseph at codesourcery dot com>
- To: Bill Schmidt <wschmidt at linux dot vnet dot ibm dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Michael Meissner <meissner at linux dot vnet dot ibm dot com>, Segher Boessenkool <segher at kernel dot crashing dot org>, David Edelsohn <dje dot gcc at gmail dot com>
- Date: Sat, 11 Mar 2017 00:52:58 +0000
- Subject: Re: [PATCH, doc] Revise GCC manual section 6.11, Additional Floating Types
- Authentication-results: sourceware.org; auth=none
- References: <133e26a4-859f-7c54-61b0-bf3a1b484140@linux.vnet.ibm.com>
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
joseph@codesourcery.com