diff options
Diffstat (limited to 'sysdeps/sparc/fpu')
24 files changed, 0 insertions, 3609 deletions
diff --git a/sysdeps/sparc/fpu/bits/fenv.h b/sysdeps/sparc/fpu/bits/fenv.h deleted file mode 100644 index 95e37d0b2c..0000000000 --- a/sysdeps/sparc/fpu/bits/fenv.h +++ /dev/null @@ -1,101 +0,0 @@ -/* Copyright (C) 1997-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 _FENV_H -# error "Never use <bits/fenv.h> directly; include <fenv.h> instead." -#endif - -#include <bits/wordsize.h> - - -/* Define bits representing the exception. We use the bit positions - of the appropriate accrued exception bits from the FSR. */ -enum - { - FE_INVALID = -#define FE_INVALID (1 << 9) - FE_INVALID, - FE_OVERFLOW = -#define FE_OVERFLOW (1 << 8) - FE_OVERFLOW, - FE_UNDERFLOW = -#define FE_UNDERFLOW (1 << 7) - FE_UNDERFLOW, - FE_DIVBYZERO = -#define FE_DIVBYZERO (1 << 6) - FE_DIVBYZERO, - FE_INEXACT = -#define FE_INEXACT (1 << 5) - FE_INEXACT - }; - -#define FE_ALL_EXCEPT \ - (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID) - -/* The Sparc FPU supports all of the four defined rounding modes. We - use again the bit positions in the FPU control word as the values - for the appropriate macros. */ -enum - { - FE_TONEAREST = -#define FE_TONEAREST (0 << 30) - FE_TONEAREST, - FE_TOWARDZERO = -#define FE_TOWARDZERO (1 << 30) - FE_TOWARDZERO, - FE_UPWARD = -#define FE_UPWARD (-0x7fffffff - 1) /* (2 << 30) */ - FE_UPWARD, - FE_DOWNWARD = -#define FE_DOWNWARD (-0x40000000) /* (3 << 30) */ - FE_DOWNWARD - }; - -#define __FE_ROUND_MASK (3U << 30) - - -/* Type representing exception flags. */ -typedef unsigned long int fexcept_t; - - -/* Type representing floating-point environment. */ -typedef unsigned long int fenv_t; - -/* If the default argument is used we use this value. */ -#define FE_DFL_ENV ((const fenv_t *) -1) - -#ifdef __USE_GNU -/* Floating-point environment where none of the exception is masked. */ -# define FE_NOMASK_ENV ((const fenv_t *) -2) -#endif - -/* For internal use only: access the fp state register. */ -#if __WORDSIZE == 64 -# define __fenv_stfsr(X) __asm__ __volatile__ ("stx %%fsr,%0" : "=m" (X)) -# define __fenv_ldfsr(X) __asm__ __volatile__ ("ldx %0,%%fsr" : : "m" (X)) -#else -# define __fenv_stfsr(X) __asm__ __volatile__ ("st %%fsr,%0" : "=m" (X)) -# define __fenv_ldfsr(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X)) -#endif - -#if __GLIBC_USE (IEC_60559_BFP_EXT) -/* Type representing floating-point control modes. */ -typedef unsigned long int femode_t; - -/* Default floating-point control modes. */ -# define FE_DFL_MODE ((const femode_t *) -1L) -#endif diff --git a/sysdeps/sparc/fpu/bits/mathinline.h b/sysdeps/sparc/fpu/bits/mathinline.h deleted file mode 100644 index 60a2028f2c..0000000000 --- a/sysdeps/sparc/fpu/bits/mathinline.h +++ /dev/null @@ -1,290 +0,0 @@ -/* Inline math functions for SPARC. - Copyright (C) 1999-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek <jakub@redhat.com>. - - 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 - -#include <bits/wordsize.h> - -#ifdef __GNUC__ - -#if defined __USE_ISOC99 && !__GNUC_PREREQ (3, 0) -# undef isgreater -# undef isgreaterequal -# undef isless -# undef islessequal -# undef islessgreater -# undef isunordered - -# if __WORDSIZE == 32 - -# ifndef __NO_LONG_DOUBLE_MATH - -# define __unordered_cmp(x, y) \ - (__extension__ \ - ({ unsigned __r; \ - if (sizeof (x) == 4 && sizeof (y) == 4) \ - { \ - float __x = (x); float __y = (y); \ - __asm__ ("fcmps %1,%2; st %%fsr, %0" : "=m" (__r) : "f" (__x), \ - "f" (__y) : "cc"); \ - } \ - else if (sizeof (x) <= 8 && sizeof (y) <= 8) \ - { \ - double __x = (x); double __y = (y); \ - __asm__ ("fcmpd\t%1,%2\n\tst\t%%fsr,%0" : "=m" (__r) : "f" (__x), \ - "f" (__y) : "cc"); \ - } \ - else \ - { \ - long double __x = (x); long double __y = (y); \ - extern int _Q_cmp (const long double a, const long double b); \ - __r = _Q_cmp (__x, __y) << 10; \ - } \ - __r; })) - -# else - -# define __unordered_cmp(x, y) \ - (__extension__ \ - ({ unsigned __r; \ - if (sizeof (x) == 4 && sizeof (y) == 4) \ - { \ - float __x = (x); float __y = (y); \ - __asm__ ("fcmps %1,%2; st %%fsr, %0" : "=m" (__r) : "f" (__x), \ - "f" (__y) : "cc"); \ - } \ - else \ - { \ - double __x = (x); double __y = (y); \ - __asm__ ("fcmpd\t%1,%2\n\tst\t%%fsr,%0" : "=m" (__r) : "f" (__x), \ - "f" (__y) : "cc"); \ - } \ - __r; })) - -# endif - -# define isgreater(x, y) ((__unordered_cmp (x, y) & (3 << 10)) == (2 << 10)) -# define isgreaterequal(x, y) ((__unordered_cmp (x, y) & (1 << 10)) == 0) -# define isless(x, y) ((__unordered_cmp (x, y) & (3 << 10)) == (1 << 10)) -# define islessequal(x, y) ((__unordered_cmp (x, y) & (2 << 10)) == 0) -# define islessgreater(x, y) (((__unordered_cmp (x, y) + (1 << 10)) & (2 << 10)) != 0) -# define isunordered(x, y) ((__unordered_cmp (x, y) & (3 << 10)) == (3 << 10)) - -# else /* sparc64 */ - -# define __unordered_v9cmp(x, y, op, qop) \ - (__extension__ \ - ({ unsigned __r; \ - if (sizeof (x) == 4 && sizeof (y) == 4) \ - { \ - float __x = (x); float __y = (y); \ - __asm__ ("fcmps\t%%fcc3,%1,%2\n\tmov" op "\t%%fcc3,1,%0" \ - : "=r" (__r) : "f" (__x), "f" (__y), "0" (0) : "cc"); \ - } \ - else if (sizeof (x) <= 8 && sizeof (y) <= 8) \ - { \ - double __x = (x); double __y = (y); \ - __asm__ ("fcmpd\t%%fcc3,%1,%2\n\tmov" op "\t%%fcc3,1,%0" \ - : "=r" (__r) : "f" (__x), "f" (__y), "0" (0) : "cc"); \ - } \ - else \ - { \ - long double __x = (x); long double __y = (y); \ - extern int _Qp_cmp (const long double *a, const long double *b); \ - __r = qop; \ - } \ - __r; })) - -# define isgreater(x, y) __unordered_v9cmp(x, y, "g", _Qp_cmp (&__x, &__y) == 2) -# define isgreaterequal(x, y) __unordered_v9cmp(x, y, "ge", (_Qp_cmp (&__x, &__y) & 1) == 0) -# define isless(x, y) __unordered_v9cmp(x, y, "l", _Qp_cmp (&__x, &__y) == 1) -# define islessequal(x, y) __unordered_v9cmp(x, y, "le", (_Qp_cmp (&__x, &__y) & 2) == 0) -# define islessgreater(x, y) __unordered_v9cmp(x, y, "lg", ((_Qp_cmp (&__x, &__y) + 1) & 2) != 0) -# define isunordered(x, y) __unordered_v9cmp(x, y, "u", _Qp_cmp (&__x, &__y) == 3) - -# endif /* sparc64 */ - -#endif /* __USE_ISOC99 */ - -#if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) && defined __OPTIMIZE__ - -# ifndef __extern_inline -# define __MATH_INLINE __inline -# else -# define __MATH_INLINE __extern_inline -# endif /* __cplusplus */ - -/* 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) - -# 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 -__NTH (sqrt (double __x)) -{ - register double __r; - __asm ("fsqrtd %1,%0" : "=f" (__r) : "f" (__x)); - return __r; -} - -__MATH_INLINE float -__NTH (sqrtf (float __x)) -{ - register float __r; - __asm ("fsqrts %1,%0" : "=f" (__r) : "f" (__x)); - return __r; -} - -# if __WORDSIZE == 64 -__MATH_INLINE long double -__NTH (sqrtl (long double __x)) -{ - long double __r; - extern void _Qp_sqrt (long double *, const long double *); - _Qp_sqrt (&__r, &__x); - return __r; -} -# elif !defined __NO_LONG_DOUBLE_MATH -__MATH_INLINE long double -sqrtl (long double __x) __THROW -{ - extern long double _Q_sqrt (const long double); - return _Q_sqrt (__x); -} -# endif /* sparc64 */ - -# endif /* !__NO_MATH_INLINES && !GCC 3.2+ */ - -/* This code is used internally in the GNU libc. */ -# ifdef __LIBC_INTERNAL_MATH_INLINES -__MATH_INLINE double -__ieee754_sqrt (double __x) -{ - register double __r; - __asm ("fsqrtd %1,%0" : "=f" (__r) : "f" (__x)); - return __r; -} - -__MATH_INLINE float -__ieee754_sqrtf (float __x) -{ - register float __r; - __asm ("fsqrts %1,%0" : "=f" (__r) : "f" (__x)); - return __r; -} - -# if __WORDSIZE == 64 -__MATH_INLINE long double -__ieee754_sqrtl (long double __x) -{ - long double __r; - extern void _Qp_sqrt (long double *, const long double *); - _Qp_sqrt(&__r, &__x); - return __r; -} -# elif !defined __NO_LONG_DOUBLE_MATH -__MATH_INLINE long double -__ieee754_sqrtl (long double __x) -{ - extern long double _Q_sqrt (const long double); - return _Q_sqrt (__x); -} -# endif /* sparc64 */ -# endif /* __LIBC_INTERNAL_MATH_INLINES */ -# endif /* gcc 2.8+ */ - -# ifdef __USE_ISOC99 - -# ifndef __NO_MATH_INLINES - -__MATH_INLINE double __NTH (fdim (double __x, double __y)); -__MATH_INLINE double -__NTH (fdim (double __x, double __y)) -{ - return __x <= __y ? 0 : __x - __y; -} - -__MATH_INLINE float __NTH (fdimf (float __x, float __y)); -__MATH_INLINE float -__NTH (fdimf (float __x, float __y)) -{ - return __x <= __y ? 0 : __x - __y; -} - -# endif /* !__NO_MATH_INLINES */ -# endif /* __USE_ISOC99 */ -#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */ -#endif /* __GNUC__ */ diff --git a/sysdeps/sparc/fpu/fclrexcpt.c b/sysdeps/sparc/fpu/fclrexcpt.c deleted file mode 100644 index 16ca6b64fc..0000000000 --- a/sysdeps/sparc/fpu/fclrexcpt.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Clear given exceptions in current floating-point environment. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__feclearexcept (int excepts) -{ - fenv_t tmp; - - __fenv_stfsr (tmp); - - tmp &= ~(excepts & FE_ALL_EXCEPT); - - __fenv_ldfsr (tmp); - - /* Success. */ - return 0; -} - -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__feclearexcept, __old_feclearexcept) -compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1); -#endif - -libm_hidden_ver (__feclearexcept, feclearexcept) -versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2); diff --git a/sysdeps/sparc/fpu/fedisblxcpt.c b/sysdeps/sparc/fpu/fedisblxcpt.c deleted file mode 100644 index 74d1722093..0000000000 --- a/sysdeps/sparc/fpu/fedisblxcpt.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Disable floating-point exceptions. - Copyright (C) 2000-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek <jakub@redhat.com>, 2000. - - 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 <fenv.h> - -int -fedisableexcept (int excepts) -{ - fenv_t new_exc, old_exc; - - __fenv_stfsr (new_exc); - - old_exc = (new_exc >> 18) & FE_ALL_EXCEPT; - new_exc &= ~(((fenv_t)excepts & FE_ALL_EXCEPT) << 18); - - __fenv_ldfsr (new_exc); - - return old_exc; -} diff --git a/sysdeps/sparc/fpu/feenablxcpt.c b/sysdeps/sparc/fpu/feenablxcpt.c deleted file mode 100644 index 64e2f04eaf..0000000000 --- a/sysdeps/sparc/fpu/feenablxcpt.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Enable floating-point exceptions. - Copyright (C) 2000-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek <jakub@redhat.com>, 2000. - - 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 <fenv.h> - -int -feenableexcept (int excepts) -{ - fenv_t new_exc, old_exc; - - __fenv_stfsr (new_exc); - - old_exc = (new_exc >> 18) & FE_ALL_EXCEPT; - new_exc |= (((fenv_t)excepts & FE_ALL_EXCEPT) << 18); - - __fenv_ldfsr (new_exc); - - return old_exc; -} diff --git a/sysdeps/sparc/fpu/fegetenv.c b/sysdeps/sparc/fpu/fegetenv.c deleted file mode 100644 index c497d2d72c..0000000000 --- a/sysdeps/sparc/fpu/fegetenv.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Store current floating-point environment. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__fegetenv (fenv_t *envp) -{ - __fenv_stfsr (*envp); - - /* Success. */ - return 0; -} - -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__fegetenv, __old_fegetenv) -compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1); -#endif - -libm_hidden_def (__fegetenv) -libm_hidden_ver (__fegetenv, fegetenv) -versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2); diff --git a/sysdeps/sparc/fpu/fegetexcept.c b/sysdeps/sparc/fpu/fegetexcept.c deleted file mode 100644 index 77afc73e0f..0000000000 --- a/sysdeps/sparc/fpu/fegetexcept.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Get enabled floating-point exceptions. - Copyright (C) 2000-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek <jakub@redhat.com>, 2000. - - 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 <fenv.h> - -int -fegetexcept (void) -{ - fenv_t exc; - __fenv_stfsr (exc); - - return (exc >> 18) & FE_ALL_EXCEPT; -} diff --git a/sysdeps/sparc/fpu/fegetmode.c b/sysdeps/sparc/fpu/fegetmode.c deleted file mode 100644 index 53294dd542..0000000000 --- a/sysdeps/sparc/fpu/fegetmode.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Store current floating-point control modes. SPARC version. - Copyright (C) 2016-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/>. */ - -#include <fenv.h> - -int -fegetmode (femode_t *modep) -{ - __fenv_stfsr (*modep); - return 0; -} diff --git a/sysdeps/sparc/fpu/fegetround.c b/sysdeps/sparc/fpu/fegetround.c deleted file mode 100644 index d1225df652..0000000000 --- a/sysdeps/sparc/fpu/fegetround.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Return current rounding direction. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> - -int -__fegetround (void) -{ - fenv_t tmp; - - __fenv_stfsr (tmp); - - return tmp & __FE_ROUND_MASK; -} -libm_hidden_def (__fegetround) -weak_alias (__fegetround, fegetround) -libm_hidden_weak (fegetround) diff --git a/sysdeps/sparc/fpu/feholdexcpt.c b/sysdeps/sparc/fpu/feholdexcpt.c deleted file mode 100644 index 8a712d892f..0000000000 --- a/sysdeps/sparc/fpu/feholdexcpt.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Store current floating-point environment and clear exceptions. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> - -int -__feholdexcept (fenv_t *envp) -{ - fenv_t tmp; - - __fenv_stfsr (*envp); - - /* Set all exceptions to non-stop and clear all exceptions. */ - tmp = *envp & ~((0x1f << 23) | FE_ALL_EXCEPT); - - __fenv_ldfsr (tmp); - - return 0; -} -libm_hidden_def (__feholdexcept) -weak_alias (__feholdexcept, feholdexcept) -libm_hidden_weak (feholdexcept) diff --git a/sysdeps/sparc/fpu/fenv_private.h b/sysdeps/sparc/fpu/fenv_private.h deleted file mode 100644 index 29b5d123cf..0000000000 --- a/sysdeps/sparc/fpu/fenv_private.h +++ /dev/null @@ -1,182 +0,0 @@ -#ifndef FENV_PRIVATE_H -#define FENV_PRIVATE_H 1 - -#include <fenv.h> - -static __always_inline void -libc_feholdexcept (fenv_t *e) -{ - fenv_t etmp; - __fenv_stfsr(etmp); - *(e) = etmp; - etmp = etmp & ~((0x1f << 23) | FE_ALL_EXCEPT); - __fenv_ldfsr(etmp); -} - -static __always_inline void -libc_fesetround (int r) -{ - fenv_t etmp; - __fenv_stfsr(etmp); - etmp = (etmp & ~__FE_ROUND_MASK) | (r); - __fenv_ldfsr(etmp); -} - -static __always_inline void -libc_feholdexcept_setround (fenv_t *e, int r) -{ - fenv_t etmp; - __fenv_stfsr(etmp); - *(e) = etmp; - etmp = etmp & ~((0x1f << 23) | FE_ALL_EXCEPT); - etmp = (etmp & ~__FE_ROUND_MASK) | (r); - __fenv_ldfsr(etmp); -} - -static __always_inline int -libc_fetestexcept (int e) -{ - fenv_t etmp; - __fenv_stfsr(etmp); - return etmp & (e) & FE_ALL_EXCEPT; -} - -static __always_inline void -libc_fesetenv (fenv_t *e) -{ - __fenv_ldfsr(*e); -} - -static __always_inline int -libc_feupdateenv_test (fenv_t *e, int ex) -{ - fenv_t etmp; - - __fenv_stfsr(etmp); - etmp &= FE_ALL_EXCEPT; - - __fenv_ldfsr(*e); - - __feraiseexcept (etmp); - - return etmp & ex; -} - -static __always_inline void -libc_feupdateenv (fenv_t *e) -{ - libc_feupdateenv_test (e, 0); -} - -static __always_inline void -libc_feholdsetround (fenv_t *e, int r) -{ - fenv_t etmp; - __fenv_stfsr(etmp); - *(e) = etmp; - etmp = (etmp & ~__FE_ROUND_MASK) | (r); - __fenv_ldfsr(etmp); -} - -static __always_inline void -libc_feresetround (fenv_t *e) -{ - fenv_t etmp; - __fenv_stfsr(etmp); - etmp = (etmp & ~__FE_ROUND_MASK) | (*e & __FE_ROUND_MASK); - __fenv_ldfsr(etmp); -} - -#define libc_feholdexceptf libc_feholdexcept -#define libc_fesetroundf libc_fesetround -#define libc_feholdexcept_setroundf libc_feholdexcept_setround -#define libc_fetestexceptf libc_fetestexcept -#define libc_fesetenvf libc_fesetenv -#define libc_feupdateenv_testf libc_feupdateenv_test -#define libc_feupdateenvf libc_feupdateenv -#define libc_feholdsetroundf libc_feholdsetround -#define libc_feresetroundf libc_feresetround -#define libc_feholdexcept libc_feholdexcept -#define libc_fesetround libc_fesetround -#define libc_feholdexcept_setround libc_feholdexcept_setround -#define libc_fetestexcept libc_fetestexcept -#define libc_fesetenv libc_fesetenv -#define libc_feupdateenv_test libc_feupdateenv_test -#define libc_feupdateenv libc_feupdateenv -#define libc_feholdsetround libc_feholdsetround -#define libc_feresetround libc_feresetround -#define libc_feholdexceptl libc_feholdexcept -#define libc_fesetroundl libc_fesetround -#define libc_feholdexcept_setroundl libc_feholdexcept_setround -#define libc_fetestexceptl libc_fetestexcept -#define libc_fesetenvl libc_fesetenv -#define libc_feupdateenv_testl libc_feupdateenv_test -#define libc_feupdateenvl libc_feupdateenv -#define libc_feholdsetroundl libc_feholdsetround -#define libc_feresetroundl libc_feresetround - -/* We have support for rounding mode context. */ -#define HAVE_RM_CTX 1 - -static __always_inline void -libc_feholdexcept_setround_sparc_ctx (struct rm_ctx *ctx, int round) -{ - fenv_t new; - - __fenv_stfsr(ctx->env); - new = ctx->env & ~((0x1f << 23) | FE_ALL_EXCEPT); - new = (new & ~__FE_ROUND_MASK) | round; - if (__glibc_unlikely (new != ctx->env)) - { - __fenv_ldfsr(new); - ctx->updated_status = true; - } - else - ctx->updated_status = false; -} - -static __always_inline void -libc_fesetenv_sparc_ctx (struct rm_ctx *ctx) -{ - libc_fesetenv(&ctx->env); -} - -static __always_inline void -libc_feupdateenv_sparc_ctx (struct rm_ctx *ctx) -{ - if (__glibc_unlikely (ctx->updated_status)) - libc_feupdateenv_test (&ctx->env, 0); -} - -static __always_inline void -libc_feholdsetround_sparc_ctx (struct rm_ctx *ctx, int round) -{ - fenv_t new; - - __fenv_stfsr(ctx->env); - new = (ctx->env & ~__FE_ROUND_MASK) | round; - if (__glibc_unlikely (new != ctx->env)) - { - __fenv_ldfsr(new); - ctx->updated_status = true; - } - else - ctx->updated_status = false; -} -#define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_sparc_ctx -#define libc_feholdexcept_setroundf_ctx libc_feholdexcept_setround_sparc_ctx -#define libc_feholdexcept_setroundl_ctx libc_feholdexcept_setround_sparc_ctx -#define libc_fesetenv_ctx libc_fesetenv_sparc_ctx -#define libc_fesetenvf_ctx libc_fesetenv_sparc_ctx -#define libc_fesetenvl_ctx libc_fesetenv_sparc_ctx -#define libc_feupdateenv_ctx libc_feupdateenv_sparc_ctx -#define libc_feupdateenvf_ctx libc_feupdateenv_sparc_ctx -#define libc_feupdateenvl_ctx libc_feupdateenv_sparc_ctx -#define libc_feresetround_ctx libc_feupdateenv_sparc_ctx -#define libc_feresetroundf_ctx libc_feupdateenv_sparc_ctx -#define libc_feresetroundl_ctx libc_feupdateenv_sparc_ctx -#define libc_feholdsetround_ctx libc_feholdsetround_sparc_ctx -#define libc_feholdsetroundf_ctx libc_feholdsetround_sparc_ctx -#define libc_feholdsetroundl_ctx libc_feholdsetround_sparc_ctx - -#endif /* FENV_PRIVATE_H */ diff --git a/sysdeps/sparc/fpu/fesetenv.c b/sysdeps/sparc/fpu/fesetenv.c deleted file mode 100644 index 22b80e22ea..0000000000 --- a/sysdeps/sparc/fpu/fesetenv.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Install given floating-point environment. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__fesetenv (const fenv_t *envp) -{ - fenv_t dummy; - - /* Put these constants in memory explicitly, so as to cope with a - -fPIC bug as of gcc 970624. Making them automatic is quicker - than loading up the pic register in this instance. */ - - if (envp == FE_DFL_ENV) - { - dummy = 0; - envp = &dummy; - } - else if (envp == FE_NOMASK_ENV) - { - dummy = 0x1f << 23; - envp = &dummy; - } - - __fenv_ldfsr (*envp); - - /* Success. */ - return 0; -} - -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__fesetenv, __old_fesetenv) -compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1); -#endif - -libm_hidden_def (__fesetenv) -libm_hidden_ver (__fesetenv, fesetenv) -versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2); diff --git a/sysdeps/sparc/fpu/fesetexcept.c b/sysdeps/sparc/fpu/fesetexcept.c deleted file mode 100644 index 42ff865c07..0000000000 --- a/sysdeps/sparc/fpu/fesetexcept.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Set given exception flags. SPARC version. - Copyright (C) 2016-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/>. */ - -#include <fenv.h> - -int -fesetexcept (int excepts) -{ - fenv_t tmp; - - __fenv_stfsr (tmp); - tmp |= excepts & FE_ALL_EXCEPT; - __fenv_ldfsr (tmp); - - return 0; -} diff --git a/sysdeps/sparc/fpu/fesetmode.c b/sysdeps/sparc/fpu/fesetmode.c deleted file mode 100644 index c678c8b8d9..0000000000 --- a/sysdeps/sparc/fpu/fesetmode.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Install given floating-point control modes. SPARC version. - Copyright (C) 2016-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/>. */ - -#include <fenv.h> -#include <fpu_control.h> - -#define FPU_CONTROL_BITS 0xcfc00000UL - -int -fesetmode (const femode_t *modep) -{ - femode_t fsr; - - __fenv_stfsr (fsr); - fsr &= ~FPU_CONTROL_BITS; - if (modep == FE_DFL_MODE) - fsr |= _FPU_DEFAULT; - else - fsr |= *modep & FPU_CONTROL_BITS; - __fenv_ldfsr (fsr); - - return 0; -} diff --git a/sysdeps/sparc/fpu/fesetround.c b/sysdeps/sparc/fpu/fesetround.c deleted file mode 100644 index e2a528a4c5..0000000000 --- a/sysdeps/sparc/fpu/fesetround.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Set current rounding direction. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> - -int -__fesetround (int round) -{ - fenv_t tmp; - - if ((round & ~__FE_ROUND_MASK) != 0) - /* ROUND is no valid rounding mode. */ - return 1; - - __fenv_stfsr (tmp); - tmp &= ~__FE_ROUND_MASK; - tmp |= round; - __fenv_ldfsr (tmp); - - return 0; -} -libm_hidden_def (__fesetround) -weak_alias (__fesetround, fesetround) -libm_hidden_weak (fesetround) diff --git a/sysdeps/sparc/fpu/feupdateenv.c b/sysdeps/sparc/fpu/feupdateenv.c deleted file mode 100644 index 08615640d7..0000000000 --- a/sysdeps/sparc/fpu/feupdateenv.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Install given floating-point environment and raise exceptions. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__feupdateenv (const fenv_t *envp) -{ - fexcept_t tmp; - - /* Save current exceptions. */ - __fenv_stfsr (tmp); - tmp &= FE_ALL_EXCEPT; - - /* Install new environment. */ - __fesetenv (envp); - - /* Raise the safed exception. Incidently for us the implementation - defined format of the values in objects of type fexcept_t is the - same as the ones specified using the FE_* constants. */ - __feraiseexcept ((int) tmp); - - /* Success. */ - return 0; -} - -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__feupdateenv, __old_feupdateenv) -compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1); -#endif - -libm_hidden_def (__feupdateenv) -libm_hidden_ver (__feupdateenv, feupdateenv) -versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2); diff --git a/sysdeps/sparc/fpu/fgetexcptflg.c b/sysdeps/sparc/fpu/fgetexcptflg.c deleted file mode 100644 index ab05a3caf8..0000000000 --- a/sysdeps/sparc/fpu/fgetexcptflg.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Store current representation for exceptions. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__fegetexceptflag (fexcept_t *flagp, int excepts) -{ - fexcept_t tmp; - - /* Get the current exceptions. */ - __fenv_stfsr (tmp); - - *flagp = tmp & excepts & FE_ALL_EXCEPT; - - /* Success. */ - return 0; -} - -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__fegetexceptflag, __old_fegetexceptflag) -compat_symbol (libm, __old_fegetexceptflag, fegetexceptflag, GLIBC_2_1); -#endif - -versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2); diff --git a/sysdeps/sparc/fpu/fpu_control.h b/sysdeps/sparc/fpu/fpu_control.h deleted file mode 100644 index 77acde9253..0000000000 --- a/sysdeps/sparc/fpu/fpu_control.h +++ /dev/null @@ -1,72 +0,0 @@ -/* FPU control word bits. SPARC version. - Copyright (C) 1997-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Miguel de Icaza - - 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 _FPU_CONTROL_H -#define _FPU_CONTROL_H 1 - - -#include <features.h> -#include <bits/wordsize.h> - -/* masking of interrupts */ -#define _FPU_MASK_IM 0x08000000 -#define _FPU_MASK_OM 0x04000000 -#define _FPU_MASK_UM 0x02000000 -#define _FPU_MASK_ZM 0x01000000 -#define _FPU_MASK_PM 0x00800000 - -/* precision control */ -#define _FPU_EXTENDED 0x00000000 /* RECOMMENDED */ -#define _FPU_DOUBLE 0x20000000 -#define _FPU_80BIT 0x30000000 -#define _FPU_SINGLE 0x10000000 /* DO NOT USE */ - -/* rounding control / Sparc */ -#define _FPU_RC_DOWN 0xc0000000 -#define _FPU_RC_UP 0x80000000 -#define _FPU_RC_ZERO 0x40000000 -#define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */ - -#define _FPU_RESERVED 0x30300000 /* Reserved bits in cw */ - - -/* Now two recommended cw */ - -/* Linux and IEEE default: - - extended precision - - rounding to nearest - - no exceptions */ -#define _FPU_DEFAULT 0x0 -#define _FPU_IEEE 0x0 - -/* Type of the control word. */ -typedef unsigned long int fpu_control_t; - -#if __WORDSIZE == 64 -# define _FPU_GETCW(cw) __asm__ __volatile__ ("stx %%fsr,%0" : "=m" (*&cw)) -# define _FPU_SETCW(cw) __asm__ __volatile__ ("ldx %0,%%fsr" : : "m" (*&cw)) -#else -# define _FPU_GETCW(cw) __asm__ __volatile__ ("st %%fsr,%0" : "=m" (*&cw)) -# define _FPU_SETCW(cw) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (*&cw)) -#endif - -/* Default control word set at startup. */ -extern fpu_control_t __fpu_control; - -#endif /* fpu_control.h */ diff --git a/sysdeps/sparc/fpu/fraiseexcpt.c b/sysdeps/sparc/fpu/fraiseexcpt.c deleted file mode 100644 index 954166ed64..0000000000 --- a/sysdeps/sparc/fpu/fraiseexcpt.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Raise given exceptions. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> -#include <float.h> -#include <math.h> -#include <shlib-compat.h> - -int -__feraiseexcept (int excepts) -{ - static const struct { - double zero, one, max, min, pi; - } c = { - 0.0, 1.0, DBL_MAX, DBL_MIN, M_PI - }; - double d; - - /* Raise exceptions represented by EXPECTS. But we must raise only - one signal at a time. It is important the if the overflow/underflow - exception and the inexact exception are given at the same time, - the overflow/underflow exception follows the inexact exception. */ - - /* First: invalid exception. */ - if ((FE_INVALID & excepts) != 0) - { - /* One example of an invalid operation is 0/0. */ - __asm ("" : "=e" (d) : "0" (c.zero)); - d /= c.zero; - __asm __volatile ("" : : "e" (d)); - } - - /* Next: division by zero. */ - if ((FE_DIVBYZERO & excepts) != 0) - { - __asm ("" : "=e" (d) : "0" (c.one)); - d /= c.zero; - __asm __volatile ("" : : "e" (d)); - } - - /* Next: overflow. */ - if ((FE_OVERFLOW & excepts) != 0) - { - __asm ("" : "=e" (d) : "0" (c.max)); - d *= d; - __asm __volatile ("" : : "e" (d)); - } - - /* Next: underflow. */ - if ((FE_UNDERFLOW & excepts) != 0) - { - __asm ("" : "=e" (d) : "0" (c.min)); - d *= d; - __asm __volatile ("" : : "e" (d)); - } - - /* Last: inexact. */ - if ((FE_INEXACT & excepts) != 0) - { - __asm ("" : "=e" (d) : "0" (c.one)); - d /= c.pi; - __asm __volatile ("" : : "e" (d)); - } - - /* Success. */ - return 0; -} - -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__feraiseexcept, __old_feraiseexcept) -compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1); -#endif - -libm_hidden_def (__feraiseexcept) -libm_hidden_ver (__feraiseexcept, feraiseexcept) -versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2); diff --git a/sysdeps/sparc/fpu/fsetexcptflg.c b/sysdeps/sparc/fpu/fsetexcptflg.c deleted file mode 100644 index 3546fbf996..0000000000 --- a/sysdeps/sparc/fpu/fsetexcptflg.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Set floating-point environment exception handling. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> -#include <math.h> -#include <shlib-compat.h> - -int -__fesetexceptflag (const fexcept_t *flagp, int excepts) -{ - fenv_t tmp; - - __fenv_stfsr (tmp); - - tmp &= ~(excepts & FE_ALL_EXCEPT); - tmp |= *flagp & excepts & FE_ALL_EXCEPT; - - __fenv_ldfsr (tmp); - - /* Success. */ - return 0; -} - -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__fesetexceptflag, __old_fesetexceptflag) -compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1); -#endif - -versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2); diff --git a/sysdeps/sparc/fpu/ftestexcept.c b/sysdeps/sparc/fpu/ftestexcept.c deleted file mode 100644 index f2b51f4b12..0000000000 --- a/sysdeps/sparc/fpu/ftestexcept.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Test exception in current environment. - Copyright (C) 1997-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/>. */ - -#include <fenv.h> - -int -fetestexcept (int excepts) -{ - fenv_t tmp; - - __fenv_stfsr (tmp); - - return tmp & excepts & FE_ALL_EXCEPT; -} -libm_hidden_def (fetestexcept) diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps deleted file mode 100644 index cf6a2929d3..0000000000 --- a/sysdeps/sparc/fpu/libm-test-ulps +++ /dev/null @@ -1,2262 +0,0 @@ -# Begin of automatic generation - -# Maximal error of functions: -Function: "acos": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "acos_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "acos_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "acos_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "acosh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "acosh_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "acosh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "acosh_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "asin": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "asin_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "asin_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "asin_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "asinh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "asinh_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "asinh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "asinh_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "atan": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "atan2": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "atan2_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "atan2_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "atan2_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "atan_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "atan_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "atan_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "atanh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "atanh_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "atanh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "atanh_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "cabs": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "cabs_downward": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "cabs_towardzero": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "cabs_upward": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "cacos": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "cacos": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cacos_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "cacos_downward": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Real part of "cacos_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "cacos_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Real part of "cacos_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "cacos_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: Real part of "cacosh": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "cacosh": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cacosh_downward": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "cacosh_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cacosh_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "cacosh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cacosh_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "cacosh_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "carg": -float: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "carg_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "carg_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "carg_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "casin": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "casin": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "casin_downward": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "casin_downward": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Real part of "casin_towardzero": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "casin_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Real part of "casin_upward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "casin_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: Real part of "casinh": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "casinh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Real part of "casinh_downward": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "casinh_downward": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Real part of "casinh_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "casinh_towardzero": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Real part of "casinh_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "casinh_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "catan": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "catan": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "catan_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "catan_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "catan_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "catan_towardzero": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Real part of "catan_upward": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "catan_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "catanh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "catanh": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "catanh_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "catanh_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "catanh_towardzero": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "catanh_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "catanh_upward": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "catanh_upward": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cbrt": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cbrt_downward": -double: 4 -float: 1 -idouble: 4 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cbrt_towardzero": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cbrt_upward": -double: 5 -float: 1 -idouble: 5 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "ccos": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "ccos": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "ccos_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "ccos_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ccos_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "ccos_towardzero": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ccos_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "ccos_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ccosh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "ccosh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "ccosh_downward": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "ccosh_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ccosh_towardzero": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "ccosh_towardzero": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ccosh_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "ccosh_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cexp": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "cexp": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: Real part of "cexp_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "cexp_downward": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cexp_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "cexp_towardzero": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cexp_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "cexp_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "clog": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "clog": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "clog10": -double: 3 -float: 4 -idouble: 3 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "clog10": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "clog10_downward": -double: 6 -float: 6 -idouble: 6 -ifloat: 6 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "clog10_downward": -double: 2 -float: 4 -idouble: 2 -ifloat: 4 -ildouble: 3 -ldouble: 3 - -Function: Real part of "clog10_towardzero": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 6 -ldouble: 6 - -Function: Imaginary part of "clog10_towardzero": -double: 2 -float: 4 -idouble: 2 -ifloat: 4 -ildouble: 3 -ldouble: 3 - -Function: Real part of "clog10_upward": -double: 8 -float: 5 -idouble: 8 -ifloat: 5 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "clog10_upward": -double: 2 -float: 4 -idouble: 2 -ifloat: 4 -ildouble: 3 -ldouble: 3 - -Function: Real part of "clog_downward": -double: 7 -float: 5 -idouble: 7 -ifloat: 5 -ildouble: 6 -ldouble: 6 - -Function: Imaginary part of "clog_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "clog_towardzero": -double: 7 -float: 5 -idouble: 7 -ifloat: 5 -ildouble: 6 -ldouble: 6 - -Function: Imaginary part of "clog_towardzero": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "clog_upward": -double: 8 -float: 5 -idouble: 8 -ifloat: 5 -ildouble: 6 -ldouble: 6 - -Function: Imaginary part of "clog_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "cos": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cos_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "cos_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cos_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "cosh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cosh_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 2 - -Function: "cosh_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 2 - -Function: "cosh_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 1 -ldouble: 3 - -Function: Real part of "cpow": -double: 2 -float: 4 -idouble: 2 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "cpow": -float: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: Real part of "cpow_downward": -double: 4 -float: 8 -idouble: 4 -ifloat: 8 -ildouble: 6 -ldouble: 6 - -Function: Imaginary part of "cpow_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cpow_towardzero": -double: 4 -float: 8 -idouble: 4 -ifloat: 8 -ildouble: 6 -ldouble: 6 - -Function: Imaginary part of "cpow_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cpow_upward": -double: 4 -float: 1 -idouble: 4 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "cpow_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csin": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "csin": -ildouble: 1 -ldouble: 1 - -Function: Real part of "csin_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "csin_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "csin_towardzero": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "csin_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "csin_upward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "csin_upward": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "csinh": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "csinh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "csinh_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "csinh_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csinh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "csinh_towardzero": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "csinh_upward": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "csinh_upward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csqrt": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "csqrt": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csqrt_downward": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "csqrt_downward": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "csqrt_towardzero": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "csqrt_towardzero": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "csqrt_upward": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "csqrt_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "ctan": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "ctan": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Real part of "ctan_downward": -double: 6 -float: 5 -idouble: 6 -ifloat: 5 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "ctan_downward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 5 -ldouble: 5 - -Function: Real part of "ctan_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "ctan_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: Real part of "ctan_upward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "ctan_upward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Real part of "ctanh": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "ctanh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "ctanh_downward": -double: 4 -float: 1 -idouble: 4 -ifloat: 1 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "ctanh_downward": -double: 6 -float: 5 -idouble: 6 -ifloat: 5 -ildouble: 4 -ldouble: 4 - -Function: Real part of "ctanh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "ctanh_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "ctanh_upward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "ctanh_upward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: "erf": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "erf_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "erf_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "erf_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "erfc": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "erfc_downward": -double: 5 -float: 6 -idouble: 5 -ifloat: 6 -ildouble: 5 -ldouble: 5 - -Function: "erfc_towardzero": -double: 3 -float: 4 -idouble: 3 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: "erfc_upward": -double: 5 -float: 6 -idouble: 5 -ifloat: 6 -ildouble: 5 -ldouble: 5 - -Function: "exp": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "exp10": -double: 2 -idouble: 2 -ildouble: 2 -ldouble: 2 - -Function: "exp10_downward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "exp10_towardzero": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "exp10_upward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "exp2": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "exp2_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "exp2_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "exp2_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "exp_downward": -double: 1 -idouble: 1 - -Function: "exp_towardzero": -double: 1 -idouble: 1 - -Function: "exp_upward": -double: 1 -idouble: 1 - -Function: "expm1": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "expm1_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "expm1_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "expm1_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "gamma": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: "gamma_downward": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 8 -ldouble: 8 - -Function: "gamma_towardzero": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: "gamma_upward": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 8 -ldouble: 8 - -Function: "hypot": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "hypot_downward": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "hypot_towardzero": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "hypot_upward": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "j0": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "j0_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "j0_towardzero": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "j0_upward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: "j1": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "j1_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "j1_towardzero": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "j1_upward": -double: 3 -float: 5 -idouble: 3 -ifloat: 5 -ildouble: 3 -ldouble: 3 - -Function: "jn": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 7 -ldouble: 7 - -Function: "jn_downward": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 8 -ldouble: 8 - -Function: "jn_towardzero": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 8 -ldouble: 8 - -Function: "jn_upward": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 7 -ldouble: 7 - -Function: "lgamma": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: "lgamma_downward": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 8 -ldouble: 8 - -Function: "lgamma_towardzero": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: "lgamma_upward": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 8 -ldouble: 8 - -Function: "log": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "log10": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "log10_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 1 -ldouble: 1 - -Function: "log10_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "log10_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "log1p": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "log1p_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "log1p_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "log1p_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "log2": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "log2_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: "log2_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "log2_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 1 -ldouble: 1 - -Function: "log_downward": -float: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "log_towardzero": -float: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "log_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "pow": -float: 3 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: "pow10": -double: 2 -idouble: 2 -ildouble: 2 -ldouble: 2 - -Function: "pow10_downward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "pow10_towardzero": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "pow10_upward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "pow_downward": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: "pow_towardzero": -double: 1 -float: 4 -idouble: 1 -ifloat: 4 -ildouble: 2 -ldouble: 2 - -Function: "pow_upward": -double: 1 -float: 4 -idouble: 1 -ifloat: 4 -ildouble: 2 -ldouble: 2 - -Function: "sin": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "sin_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "sin_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "sin_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "sincos": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "sincos_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "sincos_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "sincos_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "sinh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "sinh_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: "sinh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "sinh_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "tan": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "tan_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "tan_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "tan_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "tanh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "tanh_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "tanh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "tanh_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: "tgamma": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 4 -ldouble: 4 - -Function: "tgamma_downward": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 5 -ldouble: 5 - -Function: "tgamma_towardzero": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 5 -ldouble: 5 - -Function: "tgamma_upward": -double: 4 -float: 5 -idouble: 4 -ifloat: 5 -ildouble: 4 -ldouble: 4 - -Function: "y0": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "y0_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "y0_towardzero": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: "y0_upward": -double: 3 -float: 4 -idouble: 3 -ifloat: 4 -ildouble: 3 -ldouble: 3 - -Function: "y1": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "y1_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "y1_towardzero": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "y1_upward": -double: 7 -float: 2 -idouble: 7 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: "yn": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: "yn_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: "yn_towardzero": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: "yn_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -# end of automatic generation diff --git a/sysdeps/sparc/fpu/libm-test-ulps-name b/sysdeps/sparc/fpu/libm-test-ulps-name deleted file mode 100644 index 71240543c4..0000000000 --- a/sysdeps/sparc/fpu/libm-test-ulps-name +++ /dev/null @@ -1 +0,0 @@ -Sparc diff --git a/sysdeps/sparc/fpu/math_private.h b/sysdeps/sparc/fpu/math_private.h deleted file mode 100644 index 27946cec7b..0000000000 --- a/sysdeps/sparc/fpu/math_private.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef SPARC_MATH_PRIVATE_H -#define SPARC_MATH_PRIVATE_H 1 - -#include "fenv_private.h" -#include_next <math_private.h> - -#endif /* SPARC_MATH_PRIVATE_H */ |