about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog27
-rw-r--r--sysdeps/x86/fpu/bits/mathinline.h183
2 files changed, 27 insertions, 183 deletions
diff --git a/ChangeLog b/ChangeLog
index ca38d1dcd7..6c8c880243 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2018-03-15  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/x86/fpu/bits/mathinline.h [__FAST_MATH__]
+	(__sincos_code): Remove define and undefine.
+	[__FAST_MATH__] (__sincos): Remove inline function.
+	[__FAST_MATH__] (__sincosf): Remove inline function.
+	[__FAST_MATH__] (__sincosl): Remove inline function.
+	(__atan2l): Remove inline functions.
+	[!__GNUC_PREREQ (3, 4)] (__atan2_code): Remove macro.
+	[!__GNUC_PREREQ (3, 4) && __FAST_MATH__] (atan2): Remove inline
+	function.
+	(floor): Remove inline function.
+	(ceil): Likewise.
+	[__FAST_MATH__] (__ldexp_code): Remove macro.
+	[__FAST_MATH__] (ldexp): Remove inline function.
+	[__FAST_MATH__ && __USE_ISOC99] (ldexpf): Likewise.
+	[__FAST_MATH__ && __USE_ISOC99] (ldexpl): Likewise.
+	[__FAST_MATH__ && __USE_ISOC99] (rint): Likewise.
+	[__USE_ISOC99] (__lrint_code): Remove macro.
+	[__USE_ISOC99] (__llrint_code): Likewise.
+	[__USE_ISOC99] (lrintf): Remove inline function.
+	[__USE_ISOC99] (lrint): Likewise.
+	[__USE_ISOC99] (lrintl): Likewise.
+	[__USE_ISOC99] (llrint): Likewise.
+	[__USE_ISOC99] (llrintf): Likewise.
+	[__USE_ISOC99] (llrintl): Likewise.
+
 2018-03-15  Wilco Dijkstra  <wdijkstr@arm.com>
 
 	* benchtests/Makefile: Define _ISOMAC.
diff --git a/sysdeps/x86/fpu/bits/mathinline.h b/sysdeps/x86/fpu/bits/mathinline.h
index 061f62ef62..d475e162b7 100644
--- a/sysdeps/x86/fpu/bits/mathinline.h
+++ b/sysdeps/x86/fpu/bits/mathinline.h
@@ -174,50 +174,6 @@
 
 /* __FAST_MATH__ is defined by gcc -ffast-math.  */
 #  ifdef __FAST_MATH__
-#   ifdef __USE_GNU
-#    define __sincos_code \
-  register long double __cosr;						      \
-  register long double __sinr;						      \
-  register unsigned int __swtmp;					      \
-  __asm __volatile__							      \
-    ("fsincos\n\t"							      \
-     "fnstsw	%w2\n\t"						      \
-     "testl	$0x400, %2\n\t"						      \
-     "jz	1f\n\t"							      \
-     "fldpi\n\t"							      \
-     "fadd	%%st(0)\n\t"						      \
-     "fxch	%%st(1)\n\t"						      \
-     "2: fprem1\n\t"							      \
-     "fnstsw	%w2\n\t"						      \
-     "testl	$0x400, %2\n\t"						      \
-     "jnz	2b\n\t"							      \
-     "fstp	%%st(1)\n\t"						      \
-     "fsincos\n\t"							      \
-     "1:"								      \
-     : "=t" (__cosr), "=u" (__sinr), "=a" (__swtmp) : "0" (__x));	      \
-  *__sinx = __sinr;							      \
-  *__cosx = __cosr
-
-__MATH_INLINE void
-__NTH (__sincos (double __x, double *__sinx, double *__cosx))
-{
-  __sincos_code;
-}
-
-__MATH_INLINE void
-__NTH (__sincosf (float __x, float *__sinx, float *__cosx))
-{
-  __sincos_code;
-}
-
-__MATH_INLINE void
-__NTH (__sincosl (long double __x, long double *__sinx, long double *__cosx))
-{
-  __sincos_code;
-}
-#   endif
-
-
 /* Optimized inline implementation, sometimes with reduced precision
    and/or argument range.  */
 
@@ -276,23 +232,6 @@ __inline_mathcodeNP_ (long double, __expl, __x, __exp_code)
 #  endif /* __FAST_MATH__ */
 
 
-#  if __GNUC_PREREQ (3, 4)
-__inline_mathcodeNP2_ (long double, __atan2l, __y, __x,
-		       return __builtin_atan2l (__y, __x))
-#  else
-#   define __atan2_code \
-  register long double __value;						      \
-  __asm __volatile__							      \
-    ("fpatan"								      \
-     : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)");		      \
-  return __value
-#   ifdef __FAST_MATH__
-__inline_mathcodeNP2 (atan2, __y, __x, __atan2_code)
-#   endif
-__inline_mathcodeNP2_ (long double, __atan2l, __y, __x, __atan2_code)
-#  endif
-
-
 #  ifdef __FAST_MATH__
 #   if !__GNUC_PREREQ (3,3)
 __inline_mathopNP (sqrt, "fsqrt")
@@ -339,57 +278,6 @@ __inline_mathcodeNP (tanh, __x, \
   return __exm1 / (__exm1 + 2.0) * __sgn1l (-__x))
 #  endif
 
-__inline_mathcodeNP (floor, __x, \
-  register long double __value;						      \
-  register int __ignore;						      \
-  unsigned short int __cw;						      \
-  unsigned short int __cwtmp;						      \
-  __asm __volatile ("fnstcw %3\n\t"					      \
-		    "movzwl %3, %1\n\t"					      \
-		    "andl $0xf3ff, %1\n\t"				      \
-		    "orl $0x0400, %1\n\t"	/* rounding down */	      \
-		    "movw %w1, %2\n\t"					      \
-		    "fldcw %2\n\t"					      \
-		    "frndint\n\t"					      \
-		    "fldcw %3"						      \
-		    : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp),	      \
-		      "=m" (__cw)					      \
-		    : "0" (__x));					      \
-  return __value)
-
-__inline_mathcodeNP (ceil, __x, \
-  register long double __value;						      \
-  register int __ignore;						      \
-  unsigned short int __cw;						      \
-  unsigned short int __cwtmp;						      \
-  __asm __volatile ("fnstcw %3\n\t"					      \
-		    "movzwl %3, %1\n\t"					      \
-		    "andl $0xf3ff, %1\n\t"				      \
-		    "orl $0x0800, %1\n\t"	/* rounding up */	      \
-		    "movw %w1, %2\n\t"					      \
-		    "fldcw %2\n\t"					      \
-		    "frndint\n\t"					      \
-		    "fldcw %3"						      \
-		    : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp),	      \
-		      "=m" (__cw)					      \
-		    : "0" (__x));					      \
-  return __value)
-
-#  ifdef __FAST_MATH__
-#   define __ldexp_code \
-  register long double __value;						      \
-  __asm __volatile__							      \
-    ("fscale"								      \
-     : "=t" (__value) : "0" (__x), "u" ((long double) __y));		      \
-  return __value
-
-__MATH_INLINE double
-__NTH (ldexp (double __x, int __y))
-{
-  __ldexp_code;
-}
-#  endif
-
 
 /* Optimized versions for some non-standardized functions.  */
 #  ifdef __USE_ISOC99
@@ -417,75 +305,6 @@ __inline_mathcodeNP2 (hypot, __x, __y,
 #   endif
 #  endif
 
-#  ifdef __USE_ISOC99
-#   ifdef __FAST_MATH__
-
-__MATH_INLINE float
-__NTH (ldexpf (float __x, int __y))
-{
-  __ldexp_code;
-}
-
-__MATH_INLINE long double
-__NTH (ldexpl (long double __x, int __y))
-{
-  __ldexp_code;
-}
-
-__inline_mathopNP (rint, "frndint")
-#   endif /* __FAST_MATH__ */
-
-#   define __lrint_code \
-  long int __lrintres;							      \
-  __asm__ __volatile__							      \
-    ("fistpl %0"							      \
-     : "=m" (__lrintres) : "t" (__x) : "st");				      \
-  return __lrintres
-__MATH_INLINE long int
-__NTH (lrintf (float __x))
-{
-  __lrint_code;
-}
-__MATH_INLINE long int
-__NTH (lrint (double __x))
-{
-  __lrint_code;
-}
-__MATH_INLINE long int
-__NTH (lrintl (long double __x))
-{
-  __lrint_code;
-}
-#   undef __lrint_code
-
-#   define __llrint_code \
-  long long int __llrintres;						      \
-  __asm__ __volatile__							      \
-    ("fistpll %0"							      \
-     : "=m" (__llrintres) : "t" (__x) : "st");				      \
-  return __llrintres
-__extension__
-__MATH_INLINE long long int
-__NTH (llrintf (float __x))
-{
-  __llrint_code;
-}
-__extension__
-__MATH_INLINE long long int
-__NTH (llrint (double __x))
-{
-  __llrint_code;
-}
-__extension__
-__MATH_INLINE long long int
-__NTH (llrintl (long double __x))
-{
-  __llrint_code;
-}
-#   undef __llrint_code
-
-# endif
-
 
 #  ifdef __USE_MISC
 
@@ -501,11 +320,9 @@ __NTH (__finite (double __x))
 #  endif /* __USE_MISC  */
 
 /* Undefine some of the large macros which are not used anymore.  */
-#  undef __atan2_code
 #  ifdef __FAST_MATH__
 #   undef __expm1_code
 #   undef __exp_code
-#   undef __sincos_code
 #  endif /* __FAST_MATH__ */
 
 # endif /* __NO_MATH_INLINES  */