aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
blob: 9a932ff0d768e973cdda31cc2a7b1c59c8eeea61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
 __ieee754_sqrt{,f} are now inline functions and call out __slow versions


Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
===================================================================
--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c	2012-07-03 22:36:01.172386436 -0700
+++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c	2012-07-03 23:04:37.396469515 -0700
@@ -40,7 +40,7 @@
    simultaneously.  */
 
 double
-__ieee754_sqrt (double b)
+__slow_ieee754_sqrt (double b)
 {
   if (__builtin_expect (b > 0, 1))
     {
@@ -77,7 +77,7 @@
   
           /* 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 @@
     }
   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	2012-07-03 22:36:01.172386436 -0700
+++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c	2012-07-03 23:07:06.260476775 -0700
@@ -38,7 +38,7 @@
    square root.  */
 
 float
-__ieee754_sqrtf (float b)
+__slow_ieee754_sqrtf (float b)
 {
   if (__builtin_expect (b > 0, 1))
     {
@@ -93,4 +93,10 @@
     }
   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	2012-07-03 22:36:01.176386435 -0700
+++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c	2012-07-03 23:14:16.328497458 -0700
@@ -40,7 +40,7 @@
    simultaneously.  */
 
 double
-__ieee754_sqrt (double b)
+__slow_ieee754_sqrt (double b)
 {
   if (__builtin_expect (b > 0, 1))
     {
@@ -77,7 +77,7 @@
   
           /* 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 @@
     }
   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	2012-07-03 22:36:01.176386435 -0700
+++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c	2012-07-03 23:13:52.732496373 -0700
@@ -38,7 +38,7 @@
    square root.  */
 
 float
-__ieee754_sqrtf (float b)
+__slow_ieee754_sqrtf (float b)
 {
   if (__builtin_expect (b > 0, 1))
     {
@@ -93,4 +93,10 @@
     }
   return f_washf (b);
 }
+#undef __ieee754_sqrtf
+float
+__ieee754_sqrtf (float x)
+{
+  return __slow_ieee754_sqrtf (x);
+}
 strong_alias (__ieee754_sqrtf, __sqrtf_finite)