mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-08 14:20:07 +00:00
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:
parent
1e6d07234f
commit
4d3693ec1c
22
ChangeLog
22
ChangeLog
@ -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.
|
||||
|
@ -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 */
|
@ -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
|
@ -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
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user