about summary refs log tree commit diff
path: root/sysdeps/i386
Commit message (Collapse)AuthorAgeFilesLines
* Correct errno handling in expm1.Andreas Schwab2009-10-193-1/+14
|
* configure tweaks, support $libc_add_on_config_subdirsRoland McGrath2009-09-152-156/+138
|
* Fix IA-32 strstr in multiarch configuration as well.Ulrich Drepper2009-09-031-1/+2
|
* Remove ENABLE_SSSE3_ON_ATOM.H.J. Lu2009-08-281-2/+0
| | | | | It turns that SSSE3 isn't slow on Atom. The problem is bsf. This patch removes ENABLE_SSSE3_ON_ATOM.
* Define math_errhandling is possible.Ulrich Drepper2009-08-241-1/+5
|
* Use PIC only if SHARED is defined.H.J. Lu2009-08-082-0/+30
| | | | For ia32, we can avoid PIC in IFUNC functions in static library.
* Simplify cpuid.h configure test.Jim Meyering2009-08-082-14/+544
|
* Fix whitespace in last patch.Ulrich Drepper2009-08-071-1/+1
|
* Add the missing "; \".H.J. Lu2009-08-071-1/+1
|
* Add x86 SSE strlen.Ulrich Drepper2009-08-043-6/+160
|
* Add x86 32-bit SSE4.2 string functions.H.J. Lu2009-08-0411-0/+215
| | | | | | This patch adds 32bit SSE4.2 string functions. It uses -16L instead of 0xfffffffffffffff0L, which works for both 32bit and 64bit long. Tested on 32bit Core i7 and Core 2.
* x86/x86-64 now needs <cpuid.h> from gcc.Ulrich Drepper2009-08-022-44/+63
|
* Support multiarch for i686.H.J. Lu2009-07-317-0/+38
| | | | | | This patch adds multiarch support when configured for i686. I modified some x86-64 functions to support 32bit. I will contribute 32bit SSE string and memory functions later.
* Remove CHEC_ESP handling from i386 __longjmp.Ulrich Drepper2009-07-311-9/+0
|
* Add sigstack handling to Linux ____longjmp_chk on i386.Ulrich Drepper2009-07-302-61/+7
| | | | All other i386 ports need to provide their own versions.
* Add SSE4.2 support for strcspn, strpbrk, and strspn on x86-64.H.J. Lu2009-07-032-7/+75
|
* libc part of prelink IFUNC support.Jakub Jelinek2009-06-151-1/+1
| | | | | | The dl-lookup.c changes are needed for prelink (support in prelink checked into SVN, tested for both i?86 and x86-64), dl-irel.h just something I discovered by code inspection.
* Small optimization of STT_GNU_IFUNC handling.Ulrich Drepper2009-06-011-2/+2
| | | | | | | | The test to call the indirect function now includes a subtest to checked whether the symbol is defined. When coming to that point this is almost always the case. The test for STT_GNU_IFUNC on the other hand rarely is true. Move it to the front means we don't have to perform the second test unless really necessary.
* Better error message for invalid relocatio in static binary.Ulrich Drepper2009-06-011-1/+2
|
* Finish IFUNC support for x86 and x86-64.Ulrich Drepper2009-05-312-0/+68
| | | | Add support for the IRELAIVE relocation and IFUNC in static executables.
* Add missing .text directives.H.J. Lu2009-05-211-0/+1
| | | | The ____longjmp_chk functions on x86 and x86-64 were placed in .rodata.str1.1.
* Check for valid stack frame in longjmp.Ulrich Drepper2009-05-152-1/+55
| | | | | | | If longjmp restores the stack frame to an address which is beyond the stack frame at the time of the longjmp call it would install an uninitialized stack frame. If compiled with _FORTIFY_SOURCE defined, longjmp will now bail out in this situation.
* * sysdeps/i386/fpu/s_tan.S: Set errno for ±Inf.Ulrich Drepper2009-04-263-5/+78
| | | | | | | | | | * 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-266-10/+156
| | | | | | | | | | | | | | | | | * 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/dl-machine.h (elf_machine_rel): ImplementUlrich Drepper2009-03-141-52/+62
| | | | | STT_GNU_IFUNC handling. (elf_machine_rela): Likewise.
* * stdlib/monetary.h: Uglify function parameter names. cvs/fedora-glibc-20090218T1534Jakub Jelinek2009-02-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sunrpc/rpc/pmap_clnt.h: Likewise. * sunrpc/rpc/svc.h: Likewise. * sunrpc/rpc/xdr.h: Likewise. * sunrpc/rpc/clnt.h: Likewise. * resolv/netdb.h: Likewise. * resolv/arpa/nameser.h: Likewise. * resolv/resolv.h: Likewise. * argp/argp.h: Likewise. * locale/langinfo.h: Likewise. * io/sys/stat.h: Likewise. * posix/spawn.h: Likewise. * nis/rpcsvc/nislib.h: Likewise. * malloc/obstack.h: Likewise. * sysdeps/ia64/bits/link.h: Likewise. * sysdeps/i386/bits/link.h: Likewise. * sysdeps/s390/bits/link.h: Likewise. * sysdeps/powerpc/bits/link.h: Likewise. * sysdeps/x86_64/bits/link.h: Likewise. * sysdeps/sparc/bits/link.h: Likewise. * sysdeps/sh/bits/link.h: Likewise. * sysdeps/unix/sysv/linux/i386/sys/io.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sys/io.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sys/eventfd.h: Likewise. * sysdeps/unix/sysv/linux/sys/eventfd.h: Likewise. 2009-02-16 Jakub Jelinek <jakub@redhat.com> * stdlib/monetary.h: Uglify function parameter names. * sunrpc/rpc/pmap_clnt.h: Likewise. * sunrpc/rpc/svc.h: Likewise. * sunrpc/rpc/xdr.h: Likewise. * sunrpc/rpc/clnt.h: Likewise. * resolv/netdb.h: Likewise. * resolv/arpa/nameser.h: Likewise. * resolv/resolv.h: Likewise. * argp/argp.h: Likewise. * locale/langinfo.h: Likewise. * io/sys/stat.h: Likewise. * posix/spawn.h: Likewise. * nis/rpcsvc/nislib.h: Likewise. * malloc/obstack.h: Likewise. * sysdeps/ia64/bits/link.h: Likewise. * sysdeps/i386/bits/link.h: Likewise. * sysdeps/s390/bits/link.h: Likewise. * sysdeps/powerpc/bits/link.h: Likewise. * sysdeps/x86_64/bits/link.h: Likewise. * sysdeps/sparc/bits/link.h: Likewise. * sysdeps/sh/bits/link.h: Likewise. * sysdeps/unix/sysv/linux/i386/sys/io.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sys/io.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sys/eventfd.h: Likewise. * sysdeps/unix/sysv/linux/sys/eventfd.h: Likewise.
* * include/atomic.h: Define catomic_and if not already defined.Ulrich Drepper2009-02-081-12/+19
| | | | | * sysdeps/x86_64/bits/atomic.h: Define catomic_and. * sysdeps/i386/i486/bits/atomic.h: Likewise.
* * sysdeps/i386/stackinfo.h (stackinfo_get_sp): Define.Ulrich Drepper2009-01-291-1/+11
| | | | (stackinfo_sub_sp): Define.
* * sysdeps/i386/fpu/libm-test-ulps: Adjust expm1 errors.Ulrich Drepper2009-01-091-0/+7
|
* * sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Use LOAD_PIC_REGUlrich Drepper2008-12-061-2/+1
| | | | instead of doing things manually.
* * 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.
* * sysdeps/i386/i686/memcmp.S: Fix unwind information.Ulrich Drepper2008-07-261-2/+3
| | | | Reported by Paul Pluzhnikov <ppluzhnikov@google.com>.
* [BZ #6442]Ulrich Drepper2008-05-151-2/+2
| | | | | | | | | | | * string/endian.h: Add macros for fixed-size endian conversion. * bits/byteswap.h: Allow inclusion from <endian.h>. * sysdeps/i386/bits/byteswap.h: Likewise. * sysdeps/ia64/bits/byteswap.h: Likewise. * sysdeps/s390/bits/byteswap.h: Likewise. * sysdeps/x86_64/bits/byteswap.h: Likewise. * string/Makefile (tests): Add tst-endian. * string/tst-endian.c: New file.
* * po/lt.po: New file. From Lituanian translation team.Ulrich Drepper2008-05-131-3/+3
| | | | | sysdep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir. sysdep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir.
* Introduce TLS descriptors for i386 and x86_64.Ulrich Drepper2008-05-139-2/+807
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/inline-hashtab.h: New file, copied from 2005's libiberty, with fix for memory leak imported afterwards by Glauber de Oliveira Costa. * elf/tlsdeschtab.h: New file. * elf/dl-reloc.c (_dl_try_allocate_static_tls): Extract from... (_dl_allocate_static_tls): ... here. Rearrange failure path. (CHECK_STATIC_TLS): Move to... * elf/dynamic-link.h: ... this file. (TRY_STATIC_TLS): New macro. * elf/dl-conflict.c (CHECK_STATIC_TLS, TRY_STATIC_TLS): Override. * elf/elf.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL, R_386_TLS_DESC): Define. (R_X86_64_PC64, R_X86_GOTOFF64, R_X86_64_GOTPC32): Merge from binutils. (R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL, R_X86_64_TLSDESC): Define. (R_386_NUM, R_X86_64_NUM): Adjust. * sysdeps/i386/Makefile (sysdep-dl-routines, sysdep_routines, systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir. (gen-as-const-headers): Add tlsdesc.sym to csu subdir. * sysdeps/i386/dl-lookupcfg.h: New file. Introduce _dl_unmap to release tlsdesc_table. * sysdeps/i386/dl-machine.h: Include dl-tlsdesc.h. (elf_machine_type_class): Mark R_386_TLS_DESC as PLT class. (elf_machine_rel): Handle R_386_TLS_DESC. (elf_machine_rela): Likewise. (elf_machine_lazy_rel): Likewise. (elf_machine_lazy_rela): Likewise. * sysdeps/i386/dl-tls.h (struct dl_tls_index): Name it. * sysdeps/i386/dl-tlsdesc.S: New file. * sysdeps/i386/dl-tlsdesc.h: New file. * sysdeps/i386/tlsdesc.c: New file. * sysdeps/i386/tlsdesc.sym: New file. * sysdeps/i386/bits/linkmap.h (struct link_map_machine): Add tlsdesc_table. * sysdeps/x86_64/Makefile (sysdep-dl-routines, sysdep_routines, systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir. (gen-as-const-headers): Add tlsdesc.sym to csu subdir. * sysdeps/x86_64/dl-lookupcfg.h: New file. Introduce _dl_unmap to release tlsdesc_table. * sysdeps/x86_64/dl-machine.h: Include dl-tlsdesc.h. (elf_machine_runtime_setup): Set up lazy TLSDESC GOT entry. (elf_machine_type_class): Mark R_X86_64_TLSDESC as PLT class. (elf_machine_rel): Handle R_X86_64_TLSDESC. (elf_machine_rela): Likewise. (elf_machine_lazy_rel): Likewise. * sysdeps/x86_64/dl-tls.h (struct dl_tls_index): Name it. (__tls_get_addr): Do not declare for non-shared compiles. * sysdeps/x86_64/dl-tlsdesc.S: New file. * sysdeps/x86_64/dl-tlsdesc.h: New file. * sysdeps/x86_64/tlsdesc.c: New file. * sysdeps/x86_64/tlsdesc.sym: New file. * sysdeps/x86_64/bits/linkmap.h (struct link_map_machine): Add tlsdesc_table for both 32- and 64-bit structs.
* * elf/tls-macros.h (__TLS_GET_ADDR): Define according to the ABIUlrich Drepper2008-04-111-1/+1
| | | | | | in use. (TLS_LD): Use __TLS_GET_ADDR instead of .__tls_get_addr. (TLS_GD): Likewise.
* [BZ #4314]Ulrich Drepper2008-04-091-11/+46
| | | | * sysdeps/i386/i686/memcpy.S: Optimize copying of aligned buffers.
* * sysdeps/i386/fpu/ftestexcept.c (fetestexcept): Use short for fnstsw.Ulrich Drepper2008-01-221-1/+1
|
* [BZ #5477]Ulrich Drepper2007-12-121-1/+6
| | | | | | | | | | | | | | 2007-12-12 Jakub Jelinek <jakub@redhat.com> * sysdeps/i386/i486/bits/string.h (memmove): Define as macro. (memmove): Rename to __memmove_g, with __asm__ ("memmove"). * sysdeps/s390/bits/string.h (__strlen_g, __strcpy_g, __strncpy_g, __strcat_g, __strncat_g): Add __asm__. 2007-12-12 Ulrich Drepper <drepper@redhat.com> [BZ #5477] * io/fchmodat.c: Fix typo in stub_warning use. Patch by Petr Salinger.
* 2007-09-13 H.J. Lu <hongjiu.lu@intel.com>Roland McGrath2007-11-133-0/+3
| | | | | | * sysdeps/i386/i586/memcpy_chk.S: New file. * sysdeps/i386/i586/mempcpy_chk.S: Likewise. * sysdeps/i386/i586/memset_chk.S: Likewise.
* [BZ #3112]Ulrich Drepper2007-10-281-8/+27
| | | | | | | | | 2007-10-27 Andreas Jaeger <aj@suse.de> [BZ #3112] * sysdeps/ia64/backtrace.c (init): Free shared library if incorrect. (__cleanup): Free shared library when exiting. * sysdeps/i386/backtrace.c (init): Free shared library if incorrect. (__cleanup): Free shared library when exiting.
* Help the compiler recognize unreachable code on 32-bit machines.Ulrich Drepper2007-10-161-4/+4
| | | | | | | 2007-10-16 Ulrich Drepper <drepper@redhat.com> * time/tzfile.c (__tzfile_read): Help the compiler recognize unreachable code on 32-bit machines.
* [BZ #3924]Ulrich Drepper2007-10-071-2/+3
| | | | | | * sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Fix a few more little bugs in creating the stack frame when pltexit has to be called.
* * sysdeps/i386/i586/memcpy.S (__memcpy_chk): New definition.Ulrich Drepper2007-09-153-0/+15
| | | | | * sysdeps/i386/i586/mempcpy.S (__memcpy_chk): New definition. * sysdeps/i386/i586/memset.S (__memset_chk): New definition.
* * misc/sys/cdefs.h (__va_arg_pack): Define for GCC 4.3+.Ulrich Drepper2007-09-152-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* [BZ #3924]Ulrich Drepper2007-08-241-1/+2
| | | | | * sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Correctly align for function call in case pltexit has to be called later.
* * sysdeps/i386/dl-trampoline.S (_dl_runtime_resolve): AvoidUlrich Drepper2007-08-241-8/+8
| | | | | implicit atomic operation when storing function pointer. (_dl_runtime_profile): Likewise.
* [BZ #4586]Ulrich Drepper2007-06-081-3/+10
| | | | | | | | | 2007-06-06 Jakub Jelinek <jakub@redhat.com> BZ #4586 * sysdeps/i386/ldbl2mpn.c (__mpn_extract_long_double): Treat pseudo-zeros as zero. * sysdeps/x86_64/ldbl2mpn.c: New file. * sysdeps/ia64/ldbl2mpn.c: New file.
* * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl): UseUlrich Drepper2007-04-161-9/+9
| | | | math_opt_barrier and math_force_eval macros.
* [BZ #3306]Ulrich Drepper2007-04-163-24/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.