* The following bugs are resolved with this release:
6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498,
- 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16617, 16619, 16657,
- 16740, 16857, 17192, 17266, 17273, 17344, 17363, 17370, 17371, 17411,
- 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571,
- 17572, 17573, 17574, 17582, 17583, 17584, 17585, 17589, 17594, 17601,
- 17608, 17616, 17625, 17630, 17633, 17634, 17635, 17647, 17653, 17657,
- 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 17723,
- 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775,
- 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17803, 17806,
- 17834, 17844, 17848, 17868, 17869, 17870
+ 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16576, 16617, 16619,
+ 16657, 16740, 16857, 17192, 17266, 17273, 17344, 17363, 17370, 17371,
+ 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570,
+ 17571, 17572, 17573, 17574, 17582, 17583, 17584, 17585, 17589, 17594,
+ 17601, 17608, 17616, 17625, 17630, 17633, 17634, 17635, 17647, 17653,
+ 17657, 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722,
+ 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748,
+ 17775, 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17803,
+ 17806, 17834, 17844, 17848, 17868, 17869, 17870
* A new semaphore algorithm has been implemented in generic C code for all
machines. Previous custom assembly implementations of semaphore were
#include <fenv_private.h>
#include_next <math_private.h>
-# if __WORDSIZE == 64 || defined _ARCH_PWR4
-# define __CPU_HAS_FSQRT 1
-# else
-# define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
-# endif
-
extern double __slow_ieee754_sqrt (double);
extern __always_inline double
__ieee754_sqrt (double __x)
{
double __z;
- if (__CPU_HAS_FSQRT)
- {
- /* Volatile is required to prevent the compiler from moving the
- fsqrt instruction above the branch. */
- __asm __volatile ("fsqrt %0,%1" : "=f" (__z) : "f" (__x));
- }
- else
- __z = __slow_ieee754_sqrt(__x);
+#ifdef _ARCH_PPCSQ
+ asm ("fsqrt %0,%1" : "=f" (__z) : "f" (__x));
+#else
+ __z = __slow_ieee754_sqrt(__x);
+#endif
return __z;
}
{
float __z;
- if (__CPU_HAS_FSQRT)
- {
- /* Volatile is required to prevent the compiler from moving the
- fsqrts instruction above the branch. */
- __asm __volatile ("fsqrts %0,%1" : "=f" (__z) : "f" (__x));
- }
- else
- __z = __slow_ieee754_sqrtf(__x);
+#ifdef _ARCH_PPCSQ
+ asm ("fsqrts %0,%1" : "=f" (__z) : "f" (__x));
+#else
+ __z = __slow_ieee754_sqrtf(__x);
+#endif
return __z;
}
+++ /dev/null
-/* Double-precision floating point square root.
- Copyright (C) 1997-2015 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_private.h>
-
-#undef __ieee754_sqrt
-double
-__ieee754_sqrt (double x)
-{
- double z;
- __asm __volatile ("fsqrt %0,%1" : "=f" (z) : "f" (x));
- return z;
-}
-strong_alias (__ieee754_sqrt, __sqrt_finite)
+++ /dev/null
-/* Single-precision floating point square root.
- Copyright (C) 1997-2015 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_private.h>
-
-#undef __ieee754_sqrtf
-float
-__ieee754_sqrtf (float x)
-{
- double z;
- __asm ("fsqrts %0,%1" : "=f" (z) : "f" (x));
- return z;
-}
-strong_alias (__ieee754_sqrtf, __sqrtf_finite)