From 45470df3787aa9e97db24635b8b33066531430ad Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Tue, 22 May 2012 15:34:02 -0300 Subject: PowerPC: libm ABI update Update for libm abilist for POWER6 and POWER7. --- sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S | 9 ++++++--- sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S | 11 +++++++++-- sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c | 8 +++++--- sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S | 7 +++++-- sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S | 9 +++++++-- 5 files changed, 32 insertions(+), 12 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S b/sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S index beb5baea7a..e147ba78ab 100644 --- a/sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S +++ b/sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S @@ -47,9 +47,12 @@ strong_alias (__copysign, __copysignl) weak_alias (__copysign, copysignl) #endif -#ifndef IS_IN_libm -# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) -compat_symbol (libc, __copysign, __copysignl, GLIBC_2_0); +#ifdef IS_IN_libm +# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) +compat_symbol (libm, copysign, copysignl, GLIBC_2_0) +# endif +#else +# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) compat_symbol (libc, copysign, copysignl, GLIBC_2_0); # endif #endif diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S b/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S index 7640d3ca9b..106cf543e8 100644 --- a/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S +++ b/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S @@ -79,8 +79,15 @@ strong_alias (__finite, __finitel) weak_alias (__finite, finitel) #endif -#ifndef IS_IN_libm -# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +#ifdef IS_IN_libm +# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) +compat_symbol (libm, finite, finitel, GLIBC_2_0) +# endif +# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_1) +compat_symbol (libm, __finite, __finitel, GLIBC_2_1) +# endif +#else +# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) compat_symbol (libc, __finite, __finitel, GLIBC_2_0); compat_symbol (libc, finite, finitel, GLIBC_2_0); # endif diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c b/sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c index 71ee148149..fba4822900 100644 --- a/sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c +++ b/sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include "math_private.h" +#include /* This implementation avoids FP to INT conversions by using VSX bitwise instructions over FP values. */ @@ -66,10 +66,12 @@ __logb (double x) /* Test to avoid logb_downward (0.0) == -0.0. */ return ret == -0.0 ? 0.0 : ret; } - weak_alias (__logb, logb) - #ifdef NO_LONG_DOUBLE strong_alias (__logb, __logbl) weak_alias (__logb, logbl) #endif + +#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) +compat_symbol (libm, logb, logbl, GLIBC_2_0); +#endif diff --git a/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S b/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S index 0765d8a47a..b632773ebc 100644 --- a/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S +++ b/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S @@ -47,9 +47,12 @@ strong_alias (__copysign, __copysignl) weak_alias (__copysign, copysignl) #endif -#ifndef IS_IN_libm +#ifdef IS_IN_libm +# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) +compat_symbol (libm, copysign, copysignl, GLIBC_2_0) +# endif +#else # if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) -compat_symbol (libc, __copysign, __copysignl, GLIBC_2_0); compat_symbol (libc, copysign, copysignl, GLIBC_2_0); # endif #endif diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S b/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S index 319d07f81b..7ab29482a7 100644 --- a/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S +++ b/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S @@ -59,8 +59,13 @@ strong_alias (__finite, __finitef) hidden_def (__finitef) weak_alias (__finitef, finitef) -#ifndef IS_IN_libm -# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +#ifdef IS_IN_libm +# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) +compat_symbol (libm, __finite, __finitel, GLIBC_2_0) +compat_symbol (libm, finite, finitel, GLIBC_2_0) +# endif +#else +# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) compat_symbol (libc, __finite, __finitel, GLIBC_2_0); compat_symbol (libc, finite, finitel, GLIBC_2_0); # endif -- cgit v1.2.1