This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: PowerPC IEEE 128-bit floating point: Emulation functions
- From: Michael Meissner <meissner at linux dot vnet dot ibm dot com>
- To: Michael Meissner <meissner at linux dot vnet dot ibm dot com>, gcc at gcc dot gnu dot org, dje dot gcc at gmail dot com, amodra at gmail dot com, rguenther at suse dot de, jakub at redhat dot com, segher at kernel dot crashing dot org, bergner at vnet dot ibm dot com, rdsandiford at googlemail dot com, pthaugen at us dot ibm dot com, wschmidt at linux dot vnet dot ibm dot com, Ulrich dot Weigand at de dot ibm dot com, stigge at antcom dot de, vmakarov at redhat dot com, andrewd at gentrack dot com, joseph at codesourcery dot com, sjmunroe at us dot ibm dot com, nathan at codesourcery dot com, paul at codesourcery dot com, jason at redhat dot com, stigge at debian dot org, doko at ubuntu dot com, steven at gcc dot gnu dot org, dominiq at lps dot ens dot fr, acsawdey at linux dot vnet dot ibm dot com, azanella at linux dot vnet dot ibm dot com
- Date: Fri, 30 May 2014 16:51:09 -0400
- Subject: Re: PowerPC IEEE 128-bit floating point: Emulation functions
- Authentication-results: sourceware.org; auth=none
- References: <20140530195816 dot GA28688 at ibm-tiger dot the-meissners dot org>
Right now the rs6000 backend of the GCC compiler is rather inconsistant in the
names used for the IBM extended double floating point.
For the basic operations it used __gcc_q<op>:
__gcc_qadd
__gcc_qsub
__gcc_qmul
__gcc_qdiv
__gcc_qneg
__gcc_qne
__gcc_qgt
__gcc_qlt
__gcc_qle
In theory the conversions also use the __gcc_ format, but while it is set in
rs6000.c, the compiler ignores these names and uses:
__dpd_extendddtf
__dpd_extendsdtf
__dpd_extendtftd
__dpd_trunctdtf
__dpd_trunctfdd
__dpd_trunctfsd
__fixtfdi
__fixtfti
__fixunstfdi
__fixunstfti
__floatditf
__floattitf
__floatunditf
__floatuntitf
__powitf2
This means if have a flag day and change all of long double to IEEE 128-bit, we
run the risk of the user inadvertently calling the wrong function.
As I see it, we have a choice to have something like multilibs where you select
which library to use, or we have to use alternate names for all of the IEEE
128-bit emulation functions.
--
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797