aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/fpu/e_sqrtf.c
AgeCommit message (Collapse)Author
2015-02-13Fix powerpc software sqrtf (bug 17967).Joseph Myers
Similarly to sqrt in <https://sourceware.org/ml/libc-alpha/2015-02/msg00353.html>, the powerpc sqrtf implementation for when _ARCH_PPCSQ is not defined also relies on a * b + c being contracted into a fused multiply-add. Although this contraction is not explicitly disabled for e_sqrtf.c, it still seems appropriate to make the file explicit about its requirements by using __builtin_fmaf; this patch does so. Furthermore, it turns out that doing so fixes the observed inaccuracy and missing exceptions (that is, that without explicit __builtin_fmaf usage, it was not being compiled as intended). Tested for powerpc32 (hard float). [BZ #17967] * sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Use __builtin_fmaf instead of relying on contraction of a * b + c.
2015-01-28powerpc: Fix fsqrt build in libm [BZ#16576]Adhemerval Zanella
Some powerpc64 processors (e5500 core for instance) does not provide the fsqrt instruction, however current check to use in math_private.h is __WORDSIZE and _ARCH_PWR4 (ISA 2.02). This is patch change it to use the compiler flag _ARCH_PPCSQ (which is the same condition GCC uses to decide whether to generate fsqrt instruction). It fixes BZ#16576.
2015-01-02Update copyright dates with scripts/update-copyrights.Joseph Myers
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae
2013-10-04PowerPC floating point little-endian [8 of 15]Anton Blanchard
http://sourceware.org/ml/libc-alpha/2013-07/msg00199.html Corrects floating-point environment code for little-endian. * sysdeps/powerpc/fpu/fenv_libc.h (fenv_union_t): Replace int array with long long. * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Adjust. * sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Adjust. * sysdeps/powerpc/fpu/fclrexcpt.c (__feclearexcept): Adjust. * sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept): Adjust. * sysdeps/powerpc/fpu/feenablxcpt.c (feenableexcept): Adjust. * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Adjust. * sysdeps/powerpc/fpu/feholdexcpt.c (feholdexcept): Adjust. * sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Adjust. * sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Adjust. * sysdeps/powerpc/fpu/fgetexcptflg.c (__fegetexceptflag): Adjust. * sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Adjust. * sysdeps/powerpc/fpu/fsetexcptflg.c (__fesetexceptflag): Adjust. * sysdeps/powerpc/fpu/ftestexcept.c (fetestexcept): Adjust.
2013-05-16Add #include <stdint.h> for uint[32|64]_t usage (except installed headers).Ryan S. Arnold
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers
2012-02-09Replace FSF snail mail address with URLs.Paul Eggert
2011-11-11PowerPC: Arithmetic function optimizations for POWERAdhemerval Zanella
2011-10-12Optimize libmUlrich Drepper
libm is now somewhat integrated with gcc's -ffinite-math-only option and lots of the wrapper functions have been optimized.
2009-11-06Fix spelling of (Newton-)RaphsonPhilippe De Muyter
2008-04-12* sysdeps/powerpc/fpu/e_sqrt.c: Avoid call to fetestexcept.Ulrich Drepper
* sysdeps/powerpc/fpu/e_sqrtf.c: Likewise.
2006-04-14* nis/Makefile (libnsl-routimes): Add nss-default.Ulrich Drepper
* nis/Versions (libnsl) [GLIBC_PRIVATE]: Export _nsl_default_nss. * nis/nss-nis.c: Move /etc/default/nss handling to... * nis/nss-default.c: ...here. New file. * nis/libnsl.h: New file. * nis/nss-nis.h: Remove NSS_FLAG_* definitions and _nis_default_nss plus auxilary definitions. * nis/nss_nis/nis-initgroups.c: Use _nsl_default_nss instead of _nis_default_nss. * nis/nss_nis/nis-service.c: Likewise. 2006-04-07 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/fpu/bits/mathinline.h [__WORDSIZE == 64 || _ARCH_PWR4]: Define __CPU_HAS_FSQRT. (__ieee754_sqrt): Fix comment. (__ieee754_sqrtf): Fix comment. * sysdeps/powerpc/fpu/e_sqrt.c (__ieee754_sqrt): Fix comment. Check __CPU_HAS_FSQRT instead of dl_hwcap. * sysdeps/powerpc/fpu/e_sqrtf.c (__ieee754_sqrtf): Likewise.
2005-11-17Remove dl-procinfo.h include.Ulrich Drepper
2004-12-22(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper
2007-07-122.5-18.1Jakub Jelinek
2004-05-26Update.Ulrich Drepper
2004-05-25 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/fpu/Makefile: Make ld.so a dependency of libm.so. * sysdeps/powerpc/fpu/bits/mathinline.h [__LIBC_INERNAL_MATH_INLINES] (__ieee754_sqrt): Define as __MATH_INLINE using fsqrt instruction. (__ieee754_sqrtf): Define as __MATH_INLINE using fsqrts instruction. * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Moved implementation from w_sqrt.c. * sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Moved implementation from w_sqrtf.c. * sysdeps/powerpc/fpu/w_sqrt.c (__sqrt): Wrapper implementation using inline __ieee754_sqrt(). * sysdeps/powerpc/fpu/w_sqrtf.c (__sqrtf): Wrapper implementation using inline __ieee754_sqrtf(). * sysdeps/powerpc/powerpc32/sysdep.h [__ASSEMBLER__]: Include <sysdeps/powerpc/sysdep.h> independent of __ASSEMBLER__. * sysdeps/powerpc/sysdep.h [__ASSEMBLER__] (PPC_FEATURE_*): Define PPC_FEATURE_* independent of __ASSEMBLER__. 2004-05-25 Jakub Jelinek <jakub@redhat.com> * sysdeps/pthread/aio_notify.c: Use <> instead of "" for aio_misc.h include. (aio_start_notify_thread): Define if not defined. (notify_func_wrapper): Use it. * sysdeps/pthread/aio_misc.c: Use <> instead of "" for aio_misc.h include. (aio_create_helper_thread): Define if not defined. (__aio_create_helper_thread): New function. (__aio_enqueue_request): Use aio_create_helper_thread. * nis/ypclnt.c (ypall_data, ypall_foreach): Remove. (struct ypresp_all_data): New type. (__xdr_ypresp_all): Change second argument to struct ypresp_all_data *. Replace ypall_foreach and ypall_data with objp->foreach and objp->data. (yp_all): Remove status variable, add data. Replace all uses of status with data.status. Initialize data.foreach and data.data instead of ypall_foreach and ypall_data. 2004-05-24 Jakub Jelinek <jakub@redhat.com> * elf/dl-lookup.c (add_dependency): Set DF_1_NODELETE bit in l_flags_1, not in l_flags.
1999-10-11Update.Ulrich Drepper
1999-10-11 Ulrich Drepper <drepper@cygnus.com> * sysdeps/powerpc/Makefile [math] (libm-support): Remove t_sqrt. * sysdeps/powerpc/e_sqrt.c: Moved to... * sysdeps/powerpc/fpu/e_sqrt.c: ...here. * sysdeps/powerpc/e_sqrtf.c: Moved to... * sysdeps/powerpc/fpu/e_sqrtf.c: ...here. * sysdeps/powerpc/submul_1.S: Adjust asm syntax. * sysdeps/powerpc/sub_n.S: Likewise. * sysdeps/powerpc/strlen.S: Likewise. * sysdeps/powerpc/strcpy.S: Likewise. * sysdeps/powerpc/strcmp.S: Likewise. * sysdeps/powerpc/strchr.S: Likewise. * sysdeps/powerpc/stpcpy.S: Likewise. * sysdeps/powerpc/setjmp.S: Likewise. * sysdeps/powerpc/rshift.S: Likewise. * sysdeps/powerpc/ppc-mcount.S: Likewise. * sysdeps/powerpc/mul_1.S: Likewise. * sysdeps/powerpc/memset.S: Likewise. * sysdeps/powerpc/lshift.S: Likewise. * sysdeps/powerpc/dl-start.S: Likewise. * sysdeps/powerpc/bzero.S: Likewise. * sysdeps/powerpc/bsd-setjmp.S: Likewise. * sysdeps/powerpc/bsd-_setjmp.S: Likewise. * sysdeps/powerpc/addmul_1.S: Likewise. * sysdeps/powerpc/add_n.S: Likewise. * sysdeps/powerpc/__longjmp.S: Likewise. * sysdeps/powerpc/elf/start.S: Likewise. 1999-10-11 Cristian Gafton <gafton@redhat.com> * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Declare