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: [email protected], phone: +1 (978) 899-4797