about summary refs log tree commit diff
path: root/sysdeps/powerpc/fpu
Commit message (Collapse)AuthorAgeFilesLines
* Update powerpc libm-test ULPsAndreas Schwab2012-11-231-0/+41
|
* Make fma use of Dekker and Knuth algorithms use round-to-nearest (bug 14796).Joseph Myers2012-11-031-1/+2
|
* Update powerpc libm ULPsAndreas Schwab2012-10-311-20/+420
|
* Fix ctan, ctanh of subnormals in round-upwards mode (bug 14328).Adhemerval Zanella2012-07-111-1/+274
| | | | IBM long double fixes and POWER ulps update.
* Fix float range reduction problems (#14283)Andreas Schwab2012-07-061-2/+2
|
* PowerPC: Fix for POWER7 sinf/cosfAdhemerval Zanella2012-06-012-4/+6
| | | | | This patch fixes some sinf/cosf calculations that generated unexpected underflows exceptions.
* Sort sysdeps/powerpc/fpu/libm-test-ulpsAndreas Schwab2012-06-011-166/+163
|
* Don't include exceptions in libm-test-ulps test names.Joseph Myers2012-05-241-5/+5
|
* PowerPC: ULPs updateAdhemerval Zanella2012-05-211-12/+46
| | | | | | Adjustments for libm ulps added with commit d8b82cad1b525bdcbfff88d218c7c45032e4a3af, 495fd99f3a119e5c0c542ccc6cf9c93b1fb9e892, and 5ba3cc691c856e5c67a7d4cd4713f20a79f7ba81. I also adjusted some exp10 ulps definition that was higher than needed.
* Update powerpc ULPs for ccos, csin, ccosh, csinh tests.Adhemerval Zanella2012-05-191-0/+156
|
* Fix for ldbl-128ibm acosl/asinl inaccuraciesAdhemerval Zanella2012-05-041-0/+151
| | | | | | | | | | 2012-05-02 Adhemerval Zanella <azanella@linux.vnet.ibm.com> * sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Fix long double comparison inaccuracies. * sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl): * Likewise. * sysdeps/powerpc/fpu/libm-test-ulps: Update.
* Fix ctan, ctanh overflow for ldbl-128ibm (bug 11521).Adhemerval Zanella2012-04-261-7/+70
|
* Correct powerpc64 s_floorl edge cases (bug 13886).Adhemerval Zanella2012-04-241-0/+13
| | | | | [BZ #13886] Remove powerpc64/fpu/s_floorl. Use fully correct ldbl-128bim/s_floorl.c.
* Update powerpc libm test ULPsAndreas Schwab2012-03-261-2/+24
|
* Update powerpc libm-test ULPsAndreas Schwab2012-03-211-2/+82
|
* Update powerpc libm test ULPsAndreas Schwab2012-03-181-2/+43
|
* Use double precision instead of scaling for powerpc __ieee754_hypotfAndreas Schwab2012-03-152-40/+9
|
* Update powerpc libm ULPsAndreas Schwab2012-03-151-5/+47
|
* Update powerpc libm ULPsAndreas Schwab2012-03-101-4/+364
|
* Use include_next to chain math_private.h headers.Richard Henderson2012-03-091-1/+1
|
* Use <> for math.h and math_private.h everywhere.Richard Henderson2012-03-0914-22/+22
| | | | Entire tree edited via find | grep | sed.
* powerpc: Convert __ieee754_sqrt{,f} from macros to inlines.Richard Henderson2012-03-091-70/+36
|
* Update powerpc libm ULPsAndreas Schwab2012-03-051-0/+170
|
* Update powerpc libm ULPsAndreas Schwab2012-03-041-19/+511
|
* Improve erfc accuracy.Joseph Myers2012-03-011-0/+9
|
* Resort ULPs files with gen-libm-test.pl -n in C locale.Joseph Myers2012-02-201-7/+4
|
* Replace FSF snail mail address with URLs.Paul Eggert2012-02-0949-148/+98
|
* Adjust libm test ULPs for powerpcAndreas Schwab2012-02-071-2/+16
|
* Remove __STDC__ conditionals from libm.Joseph Myers2012-01-272-14/+2
|
* Fix a wrong constant in powerpc hypot implementationAndreas Schwab2011-12-061-1/+1
|
* PowerPC: Arithmetic function optimizations for POWERAdhemerval Zanella2011-11-113-4/+136
|
* Optimize libmUlrich Drepper2011-10-124-31/+11
| | | | | libm is now somewhat integrated with gcc's -ffinite-math-only option and lots of the wrapper functions have been optimized.
* Adjust powerpc libm ULPsAndreas Schwab2011-09-281-4/+42
|
* Fix PLT uses in libm on powerpcAndreas Schwab2011-09-154-16/+16
|
* Fix whitespacesUlrich Drepper2011-09-072-2/+1
|
* Trigonometric optimizations for POWERAdhemerval Zanella2011-09-079-0/+1070
|
* Adjust libm test ulps for powerpcAndreas Schwab2011-08-201-0/+2
|
* Implement accurate fma.Jakub Jelinek2010-10-132-0/+61
|
* Correct implementation of fmaf.Jakub Jelinek2010-10-112-2/+4
|
* Avoid PLT call to fegetenv on s390Andreas Schwab2010-02-091-0/+1
|
* Fix spelling of (Newton-)RaphsonPhilippe De Muyter2009-11-062-6/+6
|
* * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: UseUlrich Drepper2009-03-102-5/+13
| | | | | | | | | | | | | .machine push; .machine "power6" and .machine pop around mtfsf insns outside of _ARCH_PWR6 define. * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: Likewise. * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_SET_DI_FPSCR): Likewise. * sysdeps/powerpc/fpu/fenv_libc.h (fesetenv_register, relax_fenv_state): Likewise.
* [BZ #9726]Ulrich Drepper2009-01-301-1/+9
| | | | | | | | | | | | | | | 2009-01-11 Ryan S. Arnold <rsa@us.ibm.com> [BZ #9726] * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_SET_DI_FPSCR, _SET_SI_FPSCR): Clobber fp0 to prevent erroneous test-case passes. 2009-01-08 Ryan S. Arnold <rsa@us.ibm.com> [BZ #9726] * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S (__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0. * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S (__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0.
* [BZ #6411]Ulrich Drepper2008-11-176-15/+409
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-11-13 Ryan S. Arnold <rsa@us.ibm.com> [BZ #6411] * sysdeps/powerpc/fpu/Makefile: Added test case tst-setcontext-fpscr. * sysdeps/powerpc/fpu/feholdexcpt.c (_FPU_MASK_ALL): Define to replace magic numbers. * sysdeps/powerpc/fpu/fenv_libc.h (fesetenv_register): Dynamically choose mtfsf insn based on PPC_FEATURE_HAS_DFP. (relax_fenv_state): Same as above. (FPSCR_29): Reserve bit in ISA 2.05. (FPSCR_NI): Provide define for compat. * sysdeps/powerpc/fpu/fesetenv.c (_FPU_MASK_ALL): Define to replace magic numbers. * sysdeps/powerpc/fpu/feupdateenv.c (_FPU_MASK_ALL): Define to replace magic numbers. * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c: New file. Test case to test setcontext and swapcontext with dynamic 64-bit FPSCR detection. * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S (__longjmp): Adjust access to hwcap to account for hwcap size increase to uint64_t. * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S (__sigsetjmp ): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S (*setcontext): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/setcontext.S: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/swapcontext.S: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S (*setcontext): dynamically select mtfsf insn based on PPC_FEATURE_HAS_DFP. Adjust access to hwcap to account for hwcap size increase to uint64_t. * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S (*swapcontext): dynamically select mtfsf insn based on PPC_FEATURE_HAS_DFP. Adjust access to hwcap to account for hwcap size increase to uint64_t. * sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/setcontext.S: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/swapcontext.S: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S (*setcontext): dynamically select mtfsf insn based on PPC_FEATURE_HAS_DFP. * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S (*swapcontext): dynamically select mtfsf insn based on PPC_FEATURE_HAS_DFP.
* [BZ #6845]Ulrich Drepper2008-08-171-1/+9
| | | | | | | | | | 2008-08-14 Ryan S. Arnold <rsa@us.ibm.com> [BZ #6845] * sysdeps/powerpc/fpu/bits/mathinline.h (__signbitl): Copy new __signbitl definition and __LONG_DOUBLE_128__ guard from: * sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: Remove as redundant. Functions which call floating point assembler operations should go into a sysdeps powerpc/fpu directory.
* * sysdeps/powerpc/fpu/e_sqrt.c: Avoid call to fetestexcept.Ulrich Drepper2008-04-122-6/+10
| | | | * sysdeps/powerpc/fpu/e_sqrtf.c: Likewise.
* * sysdeps/powerpc/fpu/fenv_libc.h: Add libm_hidden_proto forUlrich Drepper2008-04-126-17/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | __fe_nomask_env. * sysdeps/powerpc/fpu/fe_nomask.c: Add libm_hidden_def. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise. * sysdeps/powerpc/bits/fenv.h: Make safe for C++. * sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: New file. * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Rename function from fegetexcept and make old name weak alias. * include/fenv.h: Declare __fegetexcept. * sysdeps/powerpc/fpu/fedisblxcpt.c: Use __fegetexcept instead of fegetexcept. * sysdeps/powerpc/fpu/feenablxcpt.c: Likewise. * sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Avoid call to fetestexcept. * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Use __frexpl instead of frexpl to avoid local PLT. * math/s_significandl.c (__significandl): Use __ilogbl instead of ilogbl to avoid local PLT. * sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Use __ldexpl instead of ldexpl to avoid local PLT. * sysdeps/ieee754/ldbl-128ibm/e_expl.c (__ieee754_expl): Use __roundl not roundl to avoid local PLT. * sysdeps/ieee754/ldbl-128/e_j0l.c: Use function names which avoid local PLTs. Use __sincosl instead of separate sinl and cosl calls. * sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
* [BZ #5768]Ulrich Drepper2008-04-102-0/+386
| | | | | | | | | | | | | | | 2008-02-19 Steven Munroe <sjmunroe@us.ibm.com> [BZ #5768] * sysdeps/powerpc/fpu/Makefile (libm-tests): Add test-powerpc-snan. * sysdeps/powerpc/fpu/test-powerpc-snan.c: New file. 2008-02-18 Steven Munroe <sjmunroe@us.ibm.com> [BZ #5768] * sysdeps/powerpc/powerpc32/fpu/s_isnan.S: New file. * sysdeps/powerpc/powerpc32/fpu/s_isnan.c: Removed. * sysdeps/powerpc/powerpc64/fpu/s_isnan.S: New file. * sysdeps/powerpc/powerpc64/fpu/s_isnan.c: Removed.
* * misc/sys/cdefs.h (__va_arg_pack): Define for GCC 4.3+.Ulrich Drepper2007-09-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * misc/bits/syslog.h (syslog): When __va_arg_pack is defined, implement as __extern_always_inline function. (vsyslog): Define as __extern_always_inline function unconditionally. * libio/bits/stdio2.h (sprintf, snprintf, printf, fprintf): When __va_arg_pack is defined, implement as __extern_always_inline functions. (vsprintf, vsnprintf, vprintf, vfprintf): Define as __extern_always_inline functions unconditionally. * libio/bits/stdio.h (vprintf): Ifdef out the inline when bits/stdio2.h will be included. * wcsmbs/bits/wchar2.h (__swprintf_alias): New redirect. (swprintf, wprintf, fwprintf): When __va_arg_pack is defined, implement as __extern_always_inline functions. (vswprintf, vwprintf, vfwprintf): Define as __extern_always_inline functions unconditionally. * debug/tst-chk1.c (do_test): Enable remaining tests for C++. 2007-09-03 Jakub Jelinek <jakub@redhat.com> * misc/sys/cdefs.h (__extern_inline, __extern_always_inline): Only define in C++ for GCC 4.3+, in C++ always use __gnu_inline__ attribute. * include/features.h (__USE_EXTERN_INLINES): Define only when __extern_inline is defined. * stdlib/stdlib.h: Include bits/stdlib.h when __extern_always_inline is defined instead of when not __cplusplus. * misc/sys/syslog.h: Include bits/syslog.h when __extern_always_inline is defined instead of when not __cplusplus. * socket/sys/socket.h: Include bits/socket2.h when __extern_always_inline is defined instead of when not __cplusplus. * libio/stdio.h: Include bits/stdio2.h when __extern_always_inline is defined instead of when not __cplusplus. * posix/unistd.h: Include bits/unistd.h when __extern_always_inline is defined instead of when not __cplusplus. * string/string.h: Include bits/string3.h when __extern_always_inline is defined instead of when not __cplusplus. * wcsmbs/wchar.h: Include bits/wchar2.h when __extern_always_inline is defined instead of when not __cplusplus. (btowc, wctob): Don't guard the inlines with ifndef __cplusplus. * io/fcntl.h: Don't include bits/fcntl2.h if __extern_always_inline is not defined. * misc/bits/syslog-ldbl.h: Guard *_chk stuff with defined __extern_always_inline instead of !defined __cplusplus. * libio/bits/stdio-ldbl.h: Likewise. * wcsmbs/bits/wchar-ldbl.h: Likewise. * misc/bits/syslog.h (syslog): Don't define for C++. (vsyslog): Use __extern_always_inline function for C++ instead of a macro. * libio/bits/stdio.h (__STDIO_INLINE): Define to __extern_inline whenever that macro is defined. (vprintf): Don't provide the inline for C++. (fread_unlocked, fwrite_unlocked): Don't define the macros for C++. * libio/bits/stdio2.h (sprintf, snprintf, printf, fprintf): Don't define the macros for C++. (vsprintf, vsnprintf, vprintf, vfprintf): Define as __extern_always_inline functions for C++. * io/sys/stat.h (stat, lstat, fstat, fstatat, mknod, mknodat, stat64, lstat64, fstat64, fstatat64): Don't define if not __USE_EXTERN_INLINES. * wcsmbs/bits/wchar2.h: Fix #error message. (swprintf, wprintf, fwprintf): Don't define the macros for C++. (vswprintf, vwprintf, vfwprintf): Define using __extern_always_inline functions for C++. * string/bits/string3.h: Don't #undef macros if __cplusplus. (memcpy, memmove, mempcpy, memset, bcopy, bzero, strcpy, stpcpy, strncpy, strcat, strncat): Define as __extern_always_inline functions instead of macros for C++. * math/bits/cmathcalls.h: Guard __extern_inline routines with defined __extern_inline. * sysdeps/alpha/fpu/bits/mathinline.h (__MATH_INLINE): Define to __extern_inline whenever that macro is defined. * sysdeps/ia64/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/i386/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/i386/i486/bits/string.h (__STRING_INLINE): Likewise. * sysdeps/s390/bits/string.h (__STRING_INLINE): Likewise. * sysdeps/s390/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/powerpc/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/x86_64/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/sparc/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/unix/sysv/linux/sys/sysmacros.h (gnu_dev_major, gnu_dev_minor, gnu_dev_makedev): Remove __extern_inline from prototypes. Only provide __extern_inline routines if __USE_EXTERN_INLINES. * debug/Makefile: Add rules to build and run tst-{,lfs}chk{4,5,6} tests. * debug/tst-chk1.c (do_prepare, do_test): Allow compilation as C++. For now avoid some *printf tests in C++. Skip all testing if __USE_FORTIFY_LEVEL is defined, but __extern_always_inline macro is not. * debug/tst-chk4.cc: New file. * debug/tst-chk5.cc: New file. * debug/tst-chk6.cc: New file. * debug/tst-lfschk4.cc: New file. * debug/tst-lfschk5.cc: New file. * debug/tst-lfschk6.cc: New file. * include/wchar.h (__vfwprintf_chk, __vswprintf_chk): Avoid prototypes in C++. * include/stdio.h (__sprintf_chk, __snprintf_chk, __vsprintf_chk, __vsnprintf_chk, __printf_chk, __fprintf_chk, __vprintf_chk, __vfprintf_chk, __fgets_unlocked_chk, __fgets_chk): Likewise.
* 2007-04-30 Steven Munroe <sjmunroe@us.ibm.com>Ulrich Drepper2007-05-077-15/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Peter Bergner <bergner@us.ibm.com> * sysdeps/powerpc/bits/fenv.h: Declare __fe_mask_env extern. Define FE_NOMASK_ENV as FE_EANBLED_ENV. Define FE_MASK_ENV. * sysdeps/powerpc/fpu/Makefile: Add fe_mask to libm-support. * sysdeps/powerpc/fpu/fe_mask.c: New file. * sysdeps/powerpc/fpu/fe_nomask.c: Correct comment. * sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept): Call __fe_mask_env() if all FP exceptions disabled. * sysdeps/powerpc/fpu/feholdexcpt.c (feholdexcept): Copy high 32-bits from old FPSCR to new fenv to propagate DFP rounding modes. Call __fe_mask_env() if FP exceptions previously enabled. * sysdeps/powerpc/fpu/fesetenv.c (fesetenv): Change mask to merge exceptions from env. Use __fe_nomask_env() or __fe_mask_env() when transitioning from all exceptions disabled to any exception enabled or visa versa. * sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Change mask to merge exceptions from env. Call __fe_nomask_env or __fe_mask_env when transitioning from all exceptions disabled to any exception enabled or visa versa. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fe_nomask.c: Moved to... * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: ...here. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c: Moved to... * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: ...here. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c: New file.