This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Status of long double soft-fp support for powerpc32
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: Steven Munroe <munroesj at us dot ibm dot com>
- Cc: Roland McGrath <roland at redhat dot com>, Jakub Jelinek <jakub at redhat dot com>, Peter Bergner <bergner at us dot ibm dot com>, libc-alpha at sources dot redhat dot com
- Date: Wed, 31 May 2006 16:37:30 -0400
- Subject: Re: Status of long double soft-fp support for powerpc32
- References: <447DF6CE.5020902@us.ibm.com>
The PPC32 and PPC64 Linux ABI using the IBM 128-bit extended long
double format uses __gcc_qadd, __gcc_qsub, __gcc_qmul, __gcc_qdiv for the
hard float implementation. I carried through with the __gcc_q prefix for
the soft-float implementation that adds comparison, extension, and
truncation.
The _q_add, etc. names are the IEEE extended precision floating
point routines defined in the PPC32 SVR4 ABI. Because PowerPC does not
support IEEE quad in hardware, all operations required function calls.
Glibc support for PowerPC Linux ABI should not use those files or function
names.
__addtf3, etc. are the standard names that GCC uses for software
floating point emulation routines. Because the PPC32 SVR4 ABI still
specifies IEEE extended precision and GCC soft-fp emulation provides
implementations of IEEE extended precision with those names, the support
for IBM long double should not use the "tf" function names. The "tf"
names should be reserved for the IEEE conventions and theoreitcally allows
the 32-bit PowerPC GCC long double implementation to be command-line
switchable for soft-float as it is for hard-float.
In summary,
__gcc_qXXX = IBM long double hard float and soft float routines
_q_XXX = IEEE quad PPC 32 SVR4 ABI routines
__XXXtf = GCC IEEE long double soft-float routines
David