about summary refs log tree commit diff
path: root/sysdeps/x86_64/fpu
Commit message (Collapse)AuthorAgeFilesLines
* Remove code without too much effectsUlrich Drepper2011-10-2815-113/+5
| | | | | Some of the AVX-specific code is not giving enough speed-up to justify the extra code.
* Add AVX optimized versions for some x86-64 math functionsUlrich Drepper2011-10-2527-20/+276
|
* Use VEX encoding in inline math functions on x86-64 when possibleUlrich Drepper2011-10-251-48/+138
|
* Cleanup FMA4 patchUlrich Drepper2011-10-2522-1/+26
| | | | | Move the FMA4 code into its own section. Avoid some of the duplication of data resulting from the double use of source files.
* Better DLA_FMSUlrich Drepper2011-10-241-0/+17
| | | | | It's better to use __builtin_fma if it works. Use it for gcc 4.6 and higher. Move the x86-64 dla.h to the correct place.
* Optimize accurate 64-bit routines for FMA4 on x86-64Ulrich Drepper2011-10-2431-0/+328
|
* Fix typo in last changeUlrich Drepper2011-10-221-1/+1
|
* Update ULPs for x86-64Ulrich Drepper2011-10-221-4/+12
|
* Don't use NULL in last s_fma{,f} changeUlrich Drepper2011-10-212-2/+2
|
* Check for FMA4 support and generate appropriate fma functionsUlrich Drepper2011-10-202-6/+38
|
* Move fma routines to right placeUlrich Drepper2011-10-202-0/+85
|
* Fix PLT use for feraiseexcept on x86_64Andreas Schwab2011-10-191-1/+1
|
* Use new internal libc_fe* interfaces in more functionsUlrich Drepper2011-10-181-5/+30
|
* Provide combined internal feholdexcept/fesetround interfaceUlrich Drepper2011-10-181-1/+13
|
* Pretty print last change to x86-64 mathinline.hUlrich Drepper2011-10-181-2/+2
|
* Add optimized nearbyint{,f} for x86-64Ulrich Drepper2011-10-186-1/+105
|
* Start optimizing the use of the fenv interfaces in libm itselfUlrich Drepper2011-10-181-0/+42
|
* Fix last changeAndreas Schwab2011-10-181-2/+3
|
* Fix linkage conflict with feraiseexceptAndreas Schwab2011-10-181-6/+10
|
* Relax asm requirements for recently added x86-64 math interfacesUlrich Drepper2011-10-172-10/+10
|
* Makr x86-64 math_private.h more robustUlrich Drepper2011-10-171-10/+10
|
* Provide internal optimizations on x86-64 with SSE4.1Ulrich Drepper2011-10-176-12/+51
| | | | | | | Provide macros so that the internal users can, if possible, directly use the new instructions. Also fix up the mathinline.h header when compiling with SSE4.1 enabled.
* Fix last x86-64 mathinline changeUlrich Drepper2011-10-171-2/+2
| | | | Use correct function names.
* Use rounds{s,d} for x86 rint, ceil, floorUlrich Drepper2011-10-1614-10/+335
|
* Fix lost feraiseexcept symbolAndreas Schwab2011-10-141-1/+2
|
* Fix PLT use in feupdateenv on x86_64Andreas Schwab2011-10-132-5/+5
|
* Optimize libmUlrich Drepper2011-10-1213-47/+152
| | | | | libm is now somewhat integrated with gcc's -ffinite-math-only option and lots of the wrapper functions have been optimized.
* Optimize use of isnan, isinf, finiteUlrich Drepper2011-10-081-0/+21
|
* Fix parse error in bits/mathinline.h with --std=c99Andreas Schwab2011-09-261-8/+8
|
* Add fmax and fmin inlines for x86-64Ulrich Drepper2011-09-151-5/+41
|
* Use correct section to allow mergingUlrich Drepper2011-09-141-2/+2
|
* Optimized lrint and llrint for x86-64Ulrich Drepper2011-09-141-10/+46
|
* Fix jn precisionPetr Baudis2011-09-091-44/+98
|
* Fix typo in x86-64 powlH.J. Lu2011-05-181-2/+2
|
* Correct implementation of fmaf.Jakub Jelinek2010-10-112-2/+4
|
* Avoid PLT call to fegetenv on s390Andreas Schwab2010-02-091-0/+1
|
* Fix x86_64 bits/mathinline.h for -m32 compilation.Jakub Jelinek2009-09-011-0/+12
|
* Fix parse error in bits/mathinline.h with --std=c99Andreas Schwab2009-08-311-2/+2
|
* Optimize out duplicated scalbln code for x86-64.Ulrich Drepper2009-08-252-0/+11
|
* Optimized signbit{,f} for x86-64.Ulrich Drepper2009-08-252-0/+54
|
* Add ceil implementation for 64-bit machines.Ulrich Drepper2009-08-241-0/+17
| | | | | | | On 64-bit machines we should not split doubles into two 32 bit integer and handle the words separately. We have wide registers. This patch implements a 64-bit ceil version. Ideally all other functions will be converted over time.
* Optimize float construction/extraction on x86-64.Ulrich Drepper2009-08-241-0/+20
|
* Optimize x86-64 signbit{,f} a bit.Ulrich Drepper2009-08-241-5/+7
|
* * sysdeps/ieee754/dbl-64/s_expm1.c: Set errno for overflow.Ulrich Drepper2009-04-271-3/+3
| | | | | * sysdeps/ieee754/flt-32/s_expm1f.c: Likewise. * sysdeps/x86_64/fpu/s_expm1l.S: Likewise.
* * sysdeps/i386/fpu/s_tan.S: Set errno for ±Inf.Ulrich Drepper2009-04-261-1/+13
| | | | | | | | | | * sysdeps/i386/fpu/s_tanf.S: Likewise. * sysdeps/i386/fpu/s_tanl.S: Likewise. * sysdeps/ieee754/dbl-64/s_tan.c: Likewise. * sysdeps/ieee754/flt-32/s_tanf.c: Likewise. * sysdeps/x86_64/fpu/s_tanl.S: Likewise. * math/libm-test.inc: Add tests for errno after tan calls with ±Inf.
* * sysdeps/i386/fpu/s_cos.S: Set errno for ±Inf.Ulrich Drepper2009-04-262-4/+26
| | | | | | | | | | | | | | | | | * sysdeps/i386/fpu/s_cosf.S: Likewise. * sysdeps/i386/fpu/s_cosl.S: Likewise. * sysdeps/i386/fpu/s_sin.S: Likewise. * sysdeps/i386/fpu/s_sinf.S: Likewise. * sysdeps/i386/fpu/s_sinl.S: Likewise. * sysdeps/ieee754/dbl-64/s_sin.c: Likewise. * sysdeps/ieee754/flt-32/s_cosf.c: Likewise. * sysdeps/ieee754/flt-32/s_sinf.c: Likewise. * sysdeps/ieee754/ldbl-96/s_cosl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_sinl.c: Likewise. * sysdeps/x86_64/fpu/s_cosl.S: Likewise. * sysdeps/x86_64/fpu/s_sinl.S: Likewise. * math/libm-test.inc: Add tests for errno after sin/cos calls with ±Inf.
* * sysdeps/i386/fpu/s_expm1l.S: Simply use exp implementation for largeUlrich Drepper2008-08-051-1/+6
| | | | | | | | parameters. * sysdeps/x86_64/fpu/s_expm1l.S: Likewise. Patch by Denys Vlasenko <dvlasenk@redhat.com>. * nscd/connections.c (nscd_init): Typo in preprocessor directive.
* * 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.
* Dummy files to prevent stub versions from being used.Ulrich Drepper2007-05-174-0/+4
| | | | | | | * sysdeps/x86_64/fpu/k_cosl.c: New file. * sysdeps/x86_64/fpu/k_rem_pio2l.c: New file. * sysdeps/x86_64/fpu/k_sinl.c: New file. * sysdeps/x86_64/fpu/k_tanl.c: New file.
* [BZ #3306]Ulrich Drepper2007-04-161-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-03-27 Jakub Jelinek <jakub@redhat.com> [BZ #3306] * math/math_private.h (math_opt_barrier, math_force_eval): Define. * sysdeps/i386/fpu/math_private.h: New file. * sysdeps/x86_64/fpu/math_private.h: New file. * math/s_nexttowardf.c (__nexttowardf): Use math_opt_barrier and math_force_eval macros. Use "+m" constraint on asm rather than "=m" and "m". * math/s_nextafter.c (__nextafter): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c (__nexttoward): Likewise. * sysdeps/ieee754/flt-32/s_nextafterf.c (__nextafterf): Likewise. * sysdeps/ieee754/ldbl-128/s_nexttoward.c (__nexttoward): Likewise. * sysdeps/ieee754/ldbl-96/s_nexttoward.c (__nexttoward): Likewise. * sysdeps/i386/fpu/s_nextafterl.c (__nextafterl): Use math_opt_barrier and math_force_eval macros. * sysdeps/ieee754/ldbl-128/s_nextafterl.c (__nextafterl): Likewise. * sysdeps/ieee754/ldbl-96/s_nextafterl.c (__nextafterl): Likewise. * sysdeps/i386/fpu/s_nexttoward.c: Include float.h. (__nexttoward): Use math_opt_barrier and math_force_eval macros. Use "+m" constraint on asm rather than "=m" and "m". Only use asm to force double result if FLT_EVAL_METHOD is 2. * sysdeps/i386/fpu/s_nexttowardf.c: Include float.h. (__nexttowardf): Use math_opt_barrier and math_force_eval macros. Use "+m" constraint on asm rather than "=m" and "m". Only use asm to force double result if FLT_EVAL_METHOD is not 0. * sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c: Include float.h. (__nexttowardf): Use math_opt_barrier and math_force_eval macros. If FLT_EVAL_METHOD is not 0, force x to float using asm. * sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c: Include float.h. (__nldbl_nexttowardf): Use math_opt_barrier and math_force_eval macros. If FLT_EVAL_METHOD is not 0, force x to float using asm. * sysdeps/ieee754/ldbl-96/s_nexttowardf.c: Include float.h. (__nexttowardf): Use math_opt_barrier and math_force_eval macros. If FLT_EVAL_METHOD is not 0, force x to float using asm. * math/bug-nextafter.c (zero, inf): New variables. (main): Add new tests. * math/bug-nexttoward.c (zero, inf): New variables. (main): Add new tests.