__ieee754_sqrt{,f} are now inline functions and call out __slow versions Signed-off-by: Khem Raj Upstream-Status: Pending Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c @@ -40,7 +40,7 @@ static const float half = 0.5; simultaneously. */ double -__ieee754_sqrt (double b) +__slow_ieee754_sqrt (double b) { if (__builtin_expect (b > 0, 1)) { @@ -77,7 +77,7 @@ __ieee754_sqrt (double b) /* Handle small numbers by scaling. */ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) - return __ieee754_sqrt (b * two108) * twom54; + return __slow_ieee754_sqrt (b * two108) * twom54; #define FMADD(a_, c_, b_) \ ({ double __r; \ @@ -126,4 +126,12 @@ __ieee754_sqrt (double b) } return f_wash (b); } + +#undef __ieee754_sqrt +double +__ieee754_sqrt (double x) +{ + return __slow_ieee754_sqrt (x); +} + strong_alias (__ieee754_sqrt, __sqrt_finite) Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c @@ -38,7 +38,7 @@ static const float threehalf = 1.5; square root. */ float -__ieee754_sqrtf (float b) +__slow_ieee754_sqrtf (float b) { if (__builtin_expect (b > 0, 1)) { @@ -93,4 +93,10 @@ __ieee754_sqrtf (float b) } return f_washf (b); } +#undef __ieee754_sqrtf +float +__ieee754_sqrtf (float x) +{ + return __slow_ieee754_sqrtf (x); +} strong_alias (__ieee754_sqrtf, __sqrtf_finite) Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c @@ -40,7 +40,7 @@ static const float half = 0.5; simultaneously. */ double -__ieee754_sqrt (double b) +__slow_ieee754_sqrt (double b) { if (__builtin_expect (b > 0, 1)) { @@ -77,7 +77,7 @@ __ieee754_sqrt (double b) /* Handle small numbers by scaling. */ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) - return __ieee754_sqrt (b * two108) * twom54; + return __slow_ieee754_sqrt (b * two108) * twom54; #define FMADD(a_, c_, b_) \ ({ double __r; \ @@ -126,4 +126,12 @@ __ieee754_sqrt (double b) } return f_wash (b); } + +#undef __ieee754_sqrt +double +__ieee754_sqrt (double x) +{ + return __slow_ieee754_sqrt (x); +} + strong_alias (__ieee754_sqrt, __sqrt_finite) Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c @@ -38,7 +38,7 @@ static const float threehalf = 1.5; square root. */ float -__ieee754_sqrtf (float b) +__slow_ieee754_sqrtf (float b) { if (__builtin_expect (b > 0, 1)) { @@ -93,4 +93,11 @@ __ieee754_sqrtf (float b) } return f_washf (b); } +#undef __ieee754_sqrtf +float +__ieee754_sqrtf (float x) +{ + return __slow_ieee754_sqrtf (x); +} + strong_alias (__ieee754_sqrtf, __sqrtf_finite) Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c @@ -41,10 +41,10 @@ static const float half = 0.5; #ifdef __STDC__ double -__ieee754_sqrt (double b) +__slow_ieee754_sqrt (double b) #else double -__ieee754_sqrt (b) +__slow_ieee754_sqrt (b) double b; #endif { @@ -83,7 +83,7 @@ __ieee754_sqrt (b) /* Handle small numbers by scaling. */ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) - return __ieee754_sqrt (b * two108) * twom54; + return __slow_ieee754_sqrt (b * two108) * twom54; #define FMADD(a_, c_, b_) \ ({ double __r; \ @@ -132,4 +132,12 @@ __ieee754_sqrt (b) } return f_wash (b); } + +#undef __ieee754_sqrt +double +__ieee754_sqrt (double x) +{ + return __slow_ieee754_sqrt (x); +} + strong_alias (__ieee754_sqrt, __sqrt_finite) Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c @@ -39,10 +39,10 @@ static const float threehalf = 1.5; #ifdef __STDC__ float -__ieee754_sqrtf (float b) +__slow_ieee754_sqrtf (float b) #else float -__ieee754_sqrtf (b) +__slow_ieee754_sqrtf (b) float b; #endif { @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) } return f_washf (b); } + +#undef __ieee754_sqrtf +float +__ieee754_sqrtf (float x) +{ + return __slow_ieee754_sqrtf (x); +} + strong_alias (__ieee754_sqrtf, __sqrtf_finite) Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c @@ -41,10 +41,10 @@ static const float half = 0.5; #ifdef __STDC__ double -__ieee754_sqrt (double b) +__slow_ieee754_sqrt (double b) #else double -__ieee754_sqrt (b) +__slow_ieee754_sqrt (b) double b; #endif { @@ -83,7 +83,7 @@ __ieee754_sqrt (b) /* Handle small numbers by scaling. */ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) - return __ieee754_sqrt (b * two108) * twom54; + return __slow_ieee754_sqrt (b * two108) * twom54; #define FMADD(a_, c_, b_) \ ({ double __r; \ @@ -132,4 +132,12 @@ __ieee754_sqrt (b) } return f_wash (b); } + +#undef __ieee754_sqrt +double +__ieee754_sqrt (double x) +{ + return __slow_ieee754_sqrt (x); +} + strong_alias (__ieee754_sqrt, __sqrt_finite) Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c @@ -39,10 +39,10 @@ static const float threehalf = 1.5; #ifdef __STDC__ float -__ieee754_sqrtf (float b) +__slow_ieee754_sqrtf (float b) #else float -__ieee754_sqrtf (b) +__slow_ieee754_sqrtf (b) float b; #endif { @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) } return f_washf (b); } + +#undef __ieee754_sqrtf +float +__ieee754_sqrtf (float x) +{ + return __slow_ieee754_sqrtf (x); +} + strong_alias (__ieee754_sqrtf, __sqrtf_finite) Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c @@ -41,10 +41,10 @@ static const float half = 0.5; #ifdef __STDC__ double -__ieee754_sqrt (double b) +__slow_ieee754_sqrt (double b) #else double -__ieee754_sqrt (b) +__slow_ieee754_sqrt (b) double b; #endif { @@ -83,7 +83,7 @@ __ieee754_sqrt (b) /* Handle small numbers by scaling. */ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) - return __ieee754_sqrt (b * two108) * twom54; + return __slow_ieee754_sqrt (b * two108) * twom54; #define FMADD(a_, c_, b_) \ ({ double __r; \ @@ -132,4 +132,12 @@ __ieee754_sqrt (b) } return f_wash (b); } + +#undef __ieee754_sqrt +double +__ieee754_sqrt (double x) +{ + return __slow_ieee754_sqrt (x); +} + strong_alias (__ieee754_sqrt, __sqrt_finite) Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c @@ -39,10 +39,10 @@ static const float threehalf = 1.5; #ifdef __STDC__ float -__ieee754_sqrtf (float b) +__slow_ieee754_sqrtf (float b) #else float -__ieee754_sqrtf (b) +__slow_ieee754_sqrtf (b) float b; #endif { @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) } return f_washf (b); } + +#undef __ieee754_sqrtf +float +__ieee754_sqrtf (float x) +{ + return __slow_ieee754_sqrtf (x); +} + strong_alias (__ieee754_sqrtf, __sqrtf_finite) Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c @@ -132,4 +132,12 @@ __ieee754_sqrt (b) } return f_wash (b); } + +#undef __ieee754_sqrt +double +__ieee754_sqrt (double x) +{ + return __slow_ieee754_sqrt (x); +} + strong_alias (__ieee754_sqrt, __sqrt_finite) Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c =================================================================== --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) } return f_washf (b); } + +#undef __ieee754_sqrtf +float +__ieee754_sqrtf (float x) +{ + return __slow_ieee754_sqrtf (x); +} + strong_alias (__ieee754_sqrtf, __sqrtf_finite)