glibc: Drop ppc sqrt optimisations

OpenEmbedded isn't an upstream or a patch repository. These are optimisations
which for reasons unknown were never merged into upstream glibc. We have no
active ppc maintainers and these patches are at an evolutionary dead end.
Since they are optimisations, there may be small performance regressions by
removing them but OE can't carry patches like this indefinitely and these
appear to have no future.

(From OE-Core rev: 2511e937f4454813ab11a59057c29ae3f224ab5e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj
2021-12-06 14:14:17 -08:00
committed by Richard Purdie
parent d8b7e5fe1d
commit 7ccb65720c
5 changed files with 0 additions and 2232 deletions

View File

@@ -1,205 +0,0 @@
From 5da3da7f2d276c2a6ae1b04419b28e96953803ec Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:15:07 +0000
Subject: [PATCH] ppc/sqrt: Fix undefined reference to `__sqrt_finite'
on ppc fixes the errors like below
| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite'
| collect2: ld returned 1 exit status
Upstream-Status: Pending
ChangeLog
2012-01-06 Khem Raj <raj.khem@gmail.com>
* sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias.
Remove cruft.
* sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto.
* sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto.
* sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | 7 +------
sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | 7 +------
sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | 1 +
sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 1 +
sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | 1 +
sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | 1 +
sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 1 +
sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 1 +
sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | 7 +------
sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 7 +------
sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | 1 +
sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | 1 +
12 files changed, 12 insertions(+), 24 deletions(-)
diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
index 71e516d1c8..1795fd6c3e 100644
--- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
@@ -39,14 +39,8 @@ static const float half = 0.5;
We find the actual square root and half of its reciprocal
simultaneously. */
-#ifdef __STDC__
double
__ieee754_sqrt (double b)
-#else
-double
-__ieee754_sqrt (b)
- double b;
-#endif
{
if (__builtin_expect (b > 0, 1))
{
@@ -132,3 +126,4 @@ __ieee754_sqrt (b)
}
return f_wash (b);
}
+strong_alias (__ieee754_sqrt, __sqrt_finite)
diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
index 26fa067abf..a917f313ab 100644
--- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
@@ -37,14 +37,8 @@ static const float threehalf = 1.5;
We find the reciprocal square root and use that to compute the actual
square root. */
-#ifdef __STDC__
float
__ieee754_sqrtf (float b)
-#else
-float
-__ieee754_sqrtf (b)
- float b;
-#endif
{
if (__builtin_expect (b > 0, 1))
{
@@ -99,3 +93,4 @@ __ieee754_sqrtf (b)
}
return f_washf (b);
}
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
index 71e516d1c8..fc4a74990e 100644
--- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
}
return f_wash (b);
}
+strong_alias (__ieee754_sqrt, __sqrt_finite)
diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
index 26fa067abf..9d175122a8 100644
--- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
}
return f_washf (b);
}
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
index 71e516d1c8..fc4a74990e 100644
--- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
}
return f_wash (b);
}
+strong_alias (__ieee754_sqrt, __sqrt_finite)
diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
index 26fa067abf..9d175122a8 100644
--- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
}
return f_washf (b);
}
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
index 71e516d1c8..fc4a74990e 100644
--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
}
return f_wash (b);
}
+strong_alias (__ieee754_sqrt, __sqrt_finite)
diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
index 26fa067abf..9d175122a8 100644
--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
}
return f_washf (b);
}
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
index 71e516d1c8..1795fd6c3e 100644
--- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
@@ -39,14 +39,8 @@ static const float half = 0.5;
We find the actual square root and half of its reciprocal
simultaneously. */
-#ifdef __STDC__
double
__ieee754_sqrt (double b)
-#else
-double
-__ieee754_sqrt (b)
- double b;
-#endif
{
if (__builtin_expect (b > 0, 1))
{
@@ -132,3 +126,4 @@ __ieee754_sqrt (b)
}
return f_wash (b);
}
+strong_alias (__ieee754_sqrt, __sqrt_finite)
diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
index 26fa067abf..a917f313ab 100644
--- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
@@ -37,14 +37,8 @@ static const float threehalf = 1.5;
We find the reciprocal square root and use that to compute the actual
square root. */
-#ifdef __STDC__
float
__ieee754_sqrtf (float b)
-#else
-float
-__ieee754_sqrtf (b)
- float b;
-#endif
{
if (__builtin_expect (b > 0, 1))
{
@@ -99,3 +93,4 @@ __ieee754_sqrtf (b)
}
return f_washf (b);
}
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
index 71e516d1c8..fc4a74990e 100644
--- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
}
return f_wash (b);
}
+strong_alias (__ieee754_sqrt, __sqrt_finite)
diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
index 26fa067abf..9d175122a8 100644
--- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
}
return f_washf (b);
}
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)

View File

@@ -1,384 +0,0 @@
From 77f1c90d67a2f8852184fb8fd95cb0ed63065dc7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:16:38 +0000
Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out
__slow versions
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | 12 ++++++++++--
sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | 8 +++++++-
sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | 14 +++++++++++---
sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 12 ++++++++++--
sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | 14 +++++++++++---
sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | 12 ++++++++++--
sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 8 ++++++++
sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 8 ++++++++
sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | 12 ++++++++++--
sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 9 ++++++++-
sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | 14 +++++++++++---
sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | 12 ++++++++++--
12 files changed, 114 insertions(+), 21 deletions(-)
diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
index 1795fd6c3e..daa83f3fe8 100644
--- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
index a917f313ab..b812cf1705 100644
--- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
index fc4a74990e..7038a70b47 100644
--- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
index 9d175122a8..10de1f0cc3 100644
--- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
index fc4a74990e..7038a70b47 100644
--- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
index 9d175122a8..10de1f0cc3 100644
--- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
index fc4a74990e..1c34244bd8 100644
--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
index 9d175122a8..812653558f 100644
--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
index 1795fd6c3e..13a81973e3 100644
--- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
index a917f313ab..fae2d81210 100644
--- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
index fc4a74990e..7038a70b47 100644
--- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
+++ b/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)
diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
index 9d175122a8..10de1f0cc3 100644
--- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
+++ b/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)

View File

@@ -1,58 +0,0 @@
From 133870f12ba36686dd8df1311fac32a4c5b28579 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:24:46 +0000
Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out
__slow versions
Upstream-Status: Pending
Signed-off-by: chunrong guo <B40290@freescale.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 6 +++---
sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
index 1c34244bd8..7038a70b47 100644
--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
+++ b/sysdeps/powerpc/powerpc32/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; \
diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
index 812653558f..10de1f0cc3 100644
--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
+++ b/sysdeps/powerpc/powerpc32/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
{

View File

@@ -34,11 +34,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
file://makedbs.sh \
\
${NATIVESDKFIXES} \
file://0009-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \
file://0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \
file://0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
file://0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \
file://0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
file://0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \
file://0016-yes-within-the-path-sets-wrong-config-variables.patch \
file://0017-timezone-re-written-tzselect-as-posix-sh.patch \