mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 12:32:12 +02:00
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:
File diff suppressed because it is too large
Load Diff
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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
|
||||
{
|
||||
@@ -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 \
|
||||
|
||||
Reference in New Issue
Block a user