Only add l suffixes if __NO_LONG_DOUBLE_MATH is not defined.

This commit is contained in:
Ulrich Drepper 2001-02-07 18:20:15 +00:00
parent 5d96a5f689
commit 0d3fee4089
1 changed files with 16 additions and 10 deletions

View File

@ -36,6 +36,12 @@
#if __GNUC_PREREQ (2, 7)
# ifdef __NO_LONG_DOUBLE_MATH
# define __tgml(fct) fct
# else
# define __tgml(fct) fct ## l
# endif
/* This is ugly but unless gcc gets appropriate builtins we have to do
something like this. Don't ask how it works. */
@ -65,7 +71,7 @@
else if (sizeof (Val) == sizeof (float)) \
__tgmres = Fct##f (Val); \
else \
__tgmres = Fct##l (Val); \
__tgmres = __tgml(Fct) (Val); \
__tgmres; }))
# define __TGMATH_BINARY_FIRST_REAL_ONLY(Val1, Val2, Fct) \
@ -76,7 +82,7 @@
else if (sizeof (Val1) == sizeof (float)) \
__tgmres = Fct##f (Val1, Val2); \
else \
__tgmres = Fct##l (Val1, Val2); \
__tgmres = __tgml(Fct) (Val1, Val2); \
__tgmres; }))
# define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \
@ -84,7 +90,7 @@
if ((sizeof (Val1) > sizeof (double) \
|| sizeof (Val2) > sizeof (double)) \
&& __builtin_classify_type ((Val1) + (Val2)) == 8) \
__tgmres = Fct##l (Val1, Val2); \
__tgmres = __tgml(Fct) (Val1, Val2); \
else if (sizeof (Val1) == sizeof (double) \
|| sizeof (Val2) == sizeof (double) \
|| __builtin_classify_type ((Val1) \
@ -99,7 +105,7 @@
if ((sizeof (Val1) > sizeof (double) \
|| sizeof (Val2) > sizeof (double)) \
&& __builtin_classify_type ((Val1) + (Val2)) == 8) \
__tgmres = Fct##l (Val1, Val2, Val3); \
__tgmres = __tgml(Fct) (Val1, Val2, Val3); \
else if (sizeof (Val1) == sizeof (double) \
|| sizeof (Val2) == sizeof (double) \
|| __builtin_classify_type ((Val1) \
@ -116,7 +122,7 @@
|| sizeof (Val3) > sizeof (double)) \
&& __builtin_classify_type ((Val1) + (Val2) \
+ (Val3)) == 8) \
__tgmres = Fct##l (Val1, Val2, Val3); \
__tgmres = __tgml(Fct) (Val1, Val2, Val3); \
else if (sizeof (Val1) == sizeof (double) \
|| sizeof (Val2) == sizeof (double) \
|| sizeof (Val3) == sizeof (double) \
@ -135,9 +141,9 @@
&& __builtin_classify_type (__real__ (Val)) == 8) \
{ \
if (sizeof (__real__ (Val)) == sizeof (Val)) \
__tgmres = Fct##l (Val); \
__tgmres = __tgml(Fct) (Val); \
else \
__tgmres = Cfct##l (Val); \
__tgmres = __tgml(Cfct) (Val); \
} \
else if (sizeof (__real__ (Val)) == sizeof (double) \
|| __builtin_classify_type (__real__ (Val)) \
@ -167,7 +173,7 @@
else if (sizeof (Val) == sizeof (__complex__ float)) \
__tgmres = Fct##f (Val); \
else \
__tgmres = Fct##l (Val); \
__tgmres = __tgml(Fct) (Val); \
__tgmres; }))
/* XXX This definition has to be changed as soon as the compiler understands
@ -182,9 +188,9 @@
{ \
if (sizeof (__real__ (Val1)) == sizeof (Val1) \
&& sizeof (__real__ (Val2)) == sizeof (Val2)) \
__tgmres = Fct##l (Val1, Val2); \
__tgmres = __tgml(Fct) (Val1, Val2); \
else \
__tgmres = Cfct##l (Val1, Val2); \
__tgmres = __tgml(Cfct) (Val1, Val2); \
} \
else if (sizeof (__real__ (Val1)) == sizeof (double) \
|| sizeof (__real__ (Val2)) == sizeof(double) \