Remove ancient __signbit inlines

Remove __signbit inlines from mathinline.h.  Math.h already uses
the builtin when supported, so additional inlines are only used
on pre 4.0 GCCs.  Similarly remove ancient copysign and fabs
inlines.

	* sysdeps/alpha/fpu/bits/mathinline.h: Delete file.
	* sysdeps/ia64/fpu/bits/mathinline.h: Delete file.
	* sysdeps/m68k/coldfire/fpu/bits/mathinline.h: Delete file.
	* sysdeps/m68k/m680x0/fpu/bits/mathinline.h: (__signbitf): Remove.
	(__signbit): Remove.
	(__signbitl): Remove.
	* sysdeps/powerpc/bits/mathinline.h (__signbitf): Remove.
	(__signbit): Remove.
	(__signbitl): Remove.
	* sysdeps/s390/fpu/bits/mathinline.h: (__signbitf): Remove.
	(__signbit): Remove.
	(__signbitl): Remove
	* sysdeps/sparc/fpu/bits/mathinline.h (__signbitf): Remove.
	(__signbit): Remove.
	(__signbitl): Remove.
	* sysdeps/tile/bits/mathinline.h: Delete file.
	* sysdeps/x86/fpu/bits/mathinline.h (__signbitf): Remove.
	(__signbit): Remove.
	(__signbitl): Remove.
This commit is contained in:
Wilco Dijkstra 2017-09-28 19:52:13 +01:00
parent 1e6d07234f
commit 4d3693ec1c
10 changed files with 22 additions and 436 deletions

View File

@ -1,3 +1,25 @@
2017-09-28 Wilco Dijkstra <wdijkstr@arm.com>
* sysdeps/alpha/fpu/bits/mathinline.h: Delete file.
* sysdeps/ia64/fpu/bits/mathinline.h: Delete file.
* sysdeps/m68k/coldfire/fpu/bits/mathinline.h: Delete file.
* sysdeps/m68k/m680x0/fpu/bits/mathinline.h: (__signbitf): Remove.
(__signbit): Remove.
(__signbitl): Remove.
* sysdeps/powerpc/bits/mathinline.h (__signbitf): Remove.
(__signbit): Remove.
(__signbitl): Remove.
* sysdeps/s390/fpu/bits/mathinline.h: (__signbitf): Remove.
(__signbit): Remove.
(__signbitl): Remove.
* sysdeps/sparc/fpu/bits/mathinline.h (__signbitf): Remove.
(__signbit): Remove.
(__signbitl): Remove.
* sysdeps/tile/bits/mathinline.h: Delete file.
* sysdeps/x86/fpu/bits/mathinline.h (__signbitf): Remove.
(__signbit): Remove.
(__signbitl): Remove.
2017-09-28 Wilco Dijkstra <wdijkstr@arm.com>
* math/math.h: Improve handling of C99 isgreater macros.

View File

@ -1,110 +0,0 @@
/* Inline math functions for Alpha.
Copyright (C) 1996-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang.
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/>. */
#ifndef _MATH_H
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
#endif
#ifndef __extern_inline
# define __MATH_INLINE __inline
#else
# define __MATH_INLINE __extern_inline
#endif
#if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
&& defined __OPTIMIZE__
#if !__GNUC_PREREQ (4, 0)
# define __inline_copysign(NAME, TYPE) \
__MATH_INLINE TYPE \
__NTH (NAME (TYPE __x, TYPE __y)) \
{ \
TYPE __z; \
__asm ("cpys %1, %2, %0" : "=f" (__z) : "f" (__y), "f" (__x)); \
return __z; \
}
__inline_copysign (__copysignf, float)
__inline_copysign (copysignf, float)
__inline_copysign (__copysign, double)
__inline_copysign (copysign, double)
# undef __inline_copysign
#endif
#if !__GNUC_PREREQ (2, 8)
# define __inline_fabs(NAME, TYPE) \
__MATH_INLINE TYPE \
__NTH (NAME (TYPE __x)) \
{ \
TYPE __z; \
__asm ("cpys $f31, %1, %0" : "=f" (__z) : "f" (__x)); \
return __z; \
}
__inline_fabs (__fabsf, float)
__inline_fabs (fabsf, float)
__inline_fabs (__fabs, double)
__inline_fabs (fabs, double)
# undef __inline_fabs
#endif
#ifdef __USE_ISOC99
/* Test for negative number. Used in the signbit() macro. */
__MATH_INLINE int
__NTH (__signbitf (float __x))
{
#if !__GNUC_PREREQ (4, 0)
__extension__ union { float __f; int __i; } __u = { __f: __x };
return __u.__i < 0;
#else
return __builtin_signbitf (__x);
#endif
}
__MATH_INLINE int
__NTH (__signbit (double __x))
{
#if !__GNUC_PREREQ (4, 0)
__extension__ union { double __d; long __i; } __u = { __d: __x };
return __u.__i < 0;
#else
return __builtin_signbit (__x);
#endif
}
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
#if !__GNUC_PREREQ (4, 0)
__extension__ union {
long double __d;
long __i[sizeof(long double)/sizeof(long)];
} __u = { __d: __x };
return __u.__i[sizeof(long double)/sizeof(long) - 1] < 0;
#else
return __builtin_signbitl (__x);
#endif
}
#endif /* C99 */
#endif /* __NO_MATH_INLINES */

View File

@ -1,53 +0,0 @@
/* Inline math functions for ia64.
Copyright (C) 2004-2017 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/>. */
#ifndef _MATH_H
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
#endif
#ifndef __extern_inline
# define __MATH_INLINE __inline
#else
# define __MATH_INLINE __extern_inline
#endif
#if defined __USE_ISOC99 && defined __GNUC__ && __GNUC__ >= 2
/* The gcc, version 2.7 or below, has problems with all this inlining
code. So disable it for this version of the compiler. */
# if __GNUC_PREREQ (2, 8)
/* Test for negative number. Used in the signbit() macro. */
__MATH_INLINE int
__NTH (__signbitf (float __x))
{
__extension__ union { float __f; int __i; } __u = { __f: __x };
return __u.__i < 0;
}
__MATH_INLINE int
__NTH (__signbit (double __x))
{
__extension__ union { double __d; int __i[2]; } __u = { __d: __x };
return __u.__i[1] < 0;
}
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
__extension__ union { long double __l; int __i[3]; } __u = { __l: __x };
return (__u.__i[2] & 0x8000) != 0;
}
# endif
#endif

View File

@ -1,44 +0,0 @@
/* Inline math functions for Coldfire.
Copyright (C) 2012-2017 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/>. */
#ifndef _MATH_H
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
#endif
#ifndef __extern_always_inline
# define __MATH_INLINE __inline
#else
# define __MATH_INLINE __extern_always_inline
#endif
#if defined __USE_ISOC99 && defined __GNUC__
/* Test for negative number. Used in the signbit macro. */
__MATH_INLINE int
__NTH (__signbitf (float __x))
{
return __builtin_signbitf (__x);
}
__MATH_INLINE int
__NTH (__signbit (double __x))
{
return __builtin_signbit (__x);
}
#endif

View File

@ -28,30 +28,6 @@
#ifdef __GNUC__
#ifdef __USE_ISOC99
/* Test for negative number. Used in the signbit() macro. */
__MATH_INLINE int
__NTH (__signbitf (float __x))
{
__extension__ union { float __f; int __i; } __u = { __f: __x };
return __u.__i < 0;
}
__MATH_INLINE int
__NTH (__signbit (double __x))
{
__extension__ union { double __d; int __i[2]; } __u = { __d: __x };
return __u.__i[0] < 0;
}
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
__extension__ union { long double __d; int __i[3]; } __u = { __d: __x };
return __u.__i[0] < 0;
}
#endif
#if (!defined __NO_MATH_INLINES && defined __OPTIMIZE__) \
|| defined __LIBC_INTERNAL_MATH_INLINES

View File

@ -28,41 +28,6 @@
#if defined __GNUC__ && !defined _SOFT_FLOAT && !defined __NO_FPRS__
#ifdef __USE_ISOC99
/* The gcc, version 2.7 or below, has problems with all this inlining
code. So disable it for this version of the compiler. */
# if __GNUC_PREREQ (2, 8)
/* Test for negative number. Used in the signbit() macro. */
__MATH_INLINE int
__NTH (__signbitf (float __x))
{
#if __GNUC_PREREQ (4, 0)
return __builtin_signbitf (__x);
#else
__extension__ union { float __f; int __i; } __u = { __f: __x };
return __u.__i < 0;
#endif
}
__MATH_INLINE int
__NTH (__signbit (double __x))
{
#if __GNUC_PREREQ (4, 0)
return __builtin_signbit (__x);
#else
__extension__ union { double __d; long long __i; } __u = { __d: __x };
return __u.__i < 0;
#endif
}
# ifdef __LONG_DOUBLE_128__
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
return __signbit ((double) __x);
}
# endif
# endif
#endif /* __USE_ISOC99 */
#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
#ifdef __USE_ISOC99

View File

@ -29,40 +29,6 @@
#if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
&& defined __OPTIMIZE__
#ifdef __USE_ISOC99
/* Test for negative number. Used in the signbit() macro. */
__MATH_INLINE int
__NTH (__signbitf (float __x))
{
__extension__ union { float __f; int __i; } __u = { __f: __x };
return __u.__i < 0;
}
__MATH_INLINE int
__NTH (__signbit (double __x))
{
__extension__ union { double __d; long __i; } __u = { __d: __x };
return __u.__i < 0;
}
# ifndef __NO_LONG_DOUBLE_MATH
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
__extension__ union { long double __l; int __i[4]; } __u = { __l: __x };
return __u.__i[0] < 0;
}
# else
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
return __signbit ((double) __x);
}
# endif
#endif /* C99 */
/* This code is used internally in the GNU libc. */
#ifdef __LIBC_INTERNAL_MATH_INLINES

View File

@ -37,60 +37,6 @@
code. So disable it for this version of the compiler. */
# if __GNUC_PREREQ (2, 8)
# ifdef __USE_ISOC99
/* Test for negative number. Used in the signbit() macro. */
__MATH_INLINE int
__NTH (__signbitf (float __x))
{
__extension__ union { float __f; int __i; } __u = { __f: __x };
return __u.__i < 0;
}
# if __WORDSIZE == 32
__MATH_INLINE int
__NTH (__signbit (double __x))
{
__extension__ union { double __d; int __i[2]; } __u = { __d: __x };
return __u.__i[0] < 0;
}
# ifndef __NO_LONG_DOUBLE_MATH
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
__extension__ union { long double __l; int __i[4]; } __u = { __l: __x };
return __u.__i[0] < 0;
}
# else
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
return __signbit ((double)__x);
}
# endif
# else /* sparc64 */
__MATH_INLINE int
__NTH (__signbit (double __x))
{
__extension__ union { double __d; long int __i; } __u = { __d: __x };
return __u.__i < 0;
}
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
__extension__ union { long double __l; long int __i[2]; } __u = { __l: __x };
return __u.__i[0] < 0;
}
# endif /* sparc64 */
# endif /* __USE_ISOC99 */
# if !defined __NO_MATH_INLINES && !__GNUC_PREREQ (3, 2)
__MATH_INLINE double

View File

@ -1,44 +0,0 @@
/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
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/>. */
#ifndef _MATH_H
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
#endif
#ifndef __extern_always_inline
# define __MATH_INLINE __inline
#else
# define __MATH_INLINE __extern_always_inline
#endif
#if defined __USE_ISOC99 && defined __GNUC__
/* Test for negative number. Used in the signbit() macro. */
__MATH_INLINE int
__NTH (__signbitf (float __x))
{
return __builtin_signbitf (__x);
}
__MATH_INLINE int
__NTH (__signbit (double __x))
{
return __builtin_signbit (__x);
}
#endif

View File

@ -26,44 +26,6 @@
# define __MATH_INLINE __extern_always_inline
#endif
/* The gcc, version 2.7 or below, has problems with all this inlining
code. So disable it for this version of the compiler. */
# if __GNUC_PREREQ (2, 8)
/* Test for negative number. Used in the signbit() macro. */
__MATH_INLINE int
__NTH (__signbitf (float __x))
{
# ifdef __SSE2_MATH__
int __m;
__asm ("pmovmskb %1, %0" : "=r" (__m) : "x" (__x));
return (__m & 0x8) != 0;
# else
__extension__ union { float __f; int __i; } __u = { __f: __x };
return __u.__i < 0;
# endif
}
__MATH_INLINE int
__NTH (__signbit (double __x))
{
# ifdef __SSE2_MATH__
int __m;
__asm ("pmovmskb %1, %0" : "=r" (__m) : "x" (__x));
return (__m & 0x80) != 0;
# else
__extension__ union { double __d; int __i[2]; } __u = { __d: __x };
return __u.__i[1] < 0;
# endif
}
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
__extension__ union { long double __l; int __i[3]; } __u = { __l: __x };
return (__u.__i[2] & 0x8000) != 0;
}
# endif
/* The gcc, version 2.7 or below, has problems with all this inlining
code. So disable it for this version of the compiler. */
#if __GNUC_PREREQ (2, 8)