glibc/sysdeps/ieee754/flt-32/s_truncf.c

61 lines
1.6 KiB
C
Raw Normal View History

Update. 1997-03-23 02:11 Ulrich Drepper <drepper@cygnus.com> * time/sys/time.h: Make values ITIMER_* also available as macros. * elf/dl-support.c (_dl_sysdep_read_whole_file): Don't call __fstat but instead __fxstat directly to avoid dependency on libc.a when inline failed. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_read_whole_file): Likewise. * math/Makefile (libm-routines): Add s_remquo. * sysdeps/libm-i387/s_remquo.S: New file. * sysdeps/libm-i387/s_remquof.S: New file. * sysdeps/libm-i387/s_remquol.S: New file. * sysdeps/libm-ieee754/s_remquo.c: New file. * sysdeps/libm-ieee754/s_remquof.c: New file. * sysdeps/libm-ieee754/s_remquol.c: New file. * math/libm-test.c (remquo_test): New function. * sysdeps/libm-ieee754/s_rintl.c: Handle implicit leading one correctly. 1997-03-22 14:06 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add s_nan. * sysdeps/libm-ieee754/s_nan.c: New file. Implement `nan' function. * sysdeps/libm-ieee754/s_nanf.c: New file. Implement `nanf' function. * sysdeps/libm-ieee754/s_nanl.c: New file. Implement `nanl' function. * math/libm-test.c (basic_tests): Add tests for `nan' function. * math/libm-test.c (copysign_test): New function. (main): Call copysign_test. 1997-03-22 06:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_nextafter.c: Return y if x == y. * sysdeps/libm-ieee754/s_nextafterf.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-i387/s_nextafterl.c: Likewise. * math/libm-test.c (fdim_test, fmin_test, fmax_test, nextafter_test): New functions. Test these functions. (main): Call above new functions. 1997-03-22 04:53 Ulrich Drepper <drepper@cygnus.com> * Net release 2.0.2. 1997-03-22 04:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Define as alias for XTABS. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h: Partly revert patch by Andreas Schwab of Sun Dec 15 16:33:44 1996. Proposed by Thomas Bushnell <thomas@gnu.ai.mit.edu>. 1997-03-21 13:41 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/sparc/dl-machine.h (elf_machine_rel): Rewritten as for i386. Check here for non-SHN_UNDEF STB_LOCAL symbols don't do any lookup or consult their values. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): New macros. * elf/rtld.c (dl_main): Pass ELF_MACHINE_RELOC_NOPLT to _dl_lookup_symbol in place of DL_LOOKUP_NOPLT. * sysdeps/i386/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): New macro. * sysdeps/i386/dl-machine.h (elf_machine_rel): Rewritten to do the symbol lookup before checking reloc type except for R_386_RELATIVE. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): New macros. * elf/dl-reloc.c (RESOLVE): Remove STB_LOCAL check; let it be per-machine since it supposedly can't happen on i386. * elf/dl-lookup.c (do_lookup): Change arg FLAGS to RELOC_TYPE. Use elf_machine_lookup_{noexec,noplt}_p macros on it. Remove gratuitous indirection from REF arg; change callers. (_dl_lookup_symbol, _dl_lookup_versioned_symbol): Change arg name. (_dl_lookup_symbol_skip, _dl_lookup_versioned_symbol_skip): Remove FLAGS arg altogether. * elf/dlsym.c: Remove argument of FLAGS parameter. * elf/dlvsym.c: Likewise. * elf/link.h: Update decls. * Makefile (distribute): Add BUGS.
1997-03-23 01:54:07 +00:00
/* Truncate argument to nearest integral value not larger than the argument.
Copyright (C) 1997-2023 Free Software Foundation, Inc.
Update. 1997-03-23 02:11 Ulrich Drepper <drepper@cygnus.com> * time/sys/time.h: Make values ITIMER_* also available as macros. * elf/dl-support.c (_dl_sysdep_read_whole_file): Don't call __fstat but instead __fxstat directly to avoid dependency on libc.a when inline failed. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_read_whole_file): Likewise. * math/Makefile (libm-routines): Add s_remquo. * sysdeps/libm-i387/s_remquo.S: New file. * sysdeps/libm-i387/s_remquof.S: New file. * sysdeps/libm-i387/s_remquol.S: New file. * sysdeps/libm-ieee754/s_remquo.c: New file. * sysdeps/libm-ieee754/s_remquof.c: New file. * sysdeps/libm-ieee754/s_remquol.c: New file. * math/libm-test.c (remquo_test): New function. * sysdeps/libm-ieee754/s_rintl.c: Handle implicit leading one correctly. 1997-03-22 14:06 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add s_nan. * sysdeps/libm-ieee754/s_nan.c: New file. Implement `nan' function. * sysdeps/libm-ieee754/s_nanf.c: New file. Implement `nanf' function. * sysdeps/libm-ieee754/s_nanl.c: New file. Implement `nanl' function. * math/libm-test.c (basic_tests): Add tests for `nan' function. * math/libm-test.c (copysign_test): New function. (main): Call copysign_test. 1997-03-22 06:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_nextafter.c: Return y if x == y. * sysdeps/libm-ieee754/s_nextafterf.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-i387/s_nextafterl.c: Likewise. * math/libm-test.c (fdim_test, fmin_test, fmax_test, nextafter_test): New functions. Test these functions. (main): Call above new functions. 1997-03-22 04:53 Ulrich Drepper <drepper@cygnus.com> * Net release 2.0.2. 1997-03-22 04:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Define as alias for XTABS. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h: Partly revert patch by Andreas Schwab of Sun Dec 15 16:33:44 1996. Proposed by Thomas Bushnell <thomas@gnu.ai.mit.edu>. 1997-03-21 13:41 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/sparc/dl-machine.h (elf_machine_rel): Rewritten as for i386. Check here for non-SHN_UNDEF STB_LOCAL symbols don't do any lookup or consult their values. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): New macros. * elf/rtld.c (dl_main): Pass ELF_MACHINE_RELOC_NOPLT to _dl_lookup_symbol in place of DL_LOOKUP_NOPLT. * sysdeps/i386/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): New macro. * sysdeps/i386/dl-machine.h (elf_machine_rel): Rewritten to do the symbol lookup before checking reloc type except for R_386_RELATIVE. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): New macros. * elf/dl-reloc.c (RESOLVE): Remove STB_LOCAL check; let it be per-machine since it supposedly can't happen on i386. * elf/dl-lookup.c (do_lookup): Change arg FLAGS to RELOC_TYPE. Use elf_machine_lookup_{noexec,noplt}_p macros on it. Remove gratuitous indirection from REF arg; change callers. (_dl_lookup_symbol, _dl_lookup_versioned_symbol): Change arg name. (_dl_lookup_symbol_skip, _dl_lookup_versioned_symbol_skip): Remove FLAGS arg altogether. * elf/dlsym.c: Remove argument of FLAGS parameter. * elf/dlvsym.c: Likewise. * elf/link.h: Update decls. * Makefile (distribute): Add BUGS.
1997-03-23 01:54:07 +00:00
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.
Update. 1997-03-23 02:11 Ulrich Drepper <drepper@cygnus.com> * time/sys/time.h: Make values ITIMER_* also available as macros. * elf/dl-support.c (_dl_sysdep_read_whole_file): Don't call __fstat but instead __fxstat directly to avoid dependency on libc.a when inline failed. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_read_whole_file): Likewise. * math/Makefile (libm-routines): Add s_remquo. * sysdeps/libm-i387/s_remquo.S: New file. * sysdeps/libm-i387/s_remquof.S: New file. * sysdeps/libm-i387/s_remquol.S: New file. * sysdeps/libm-ieee754/s_remquo.c: New file. * sysdeps/libm-ieee754/s_remquof.c: New file. * sysdeps/libm-ieee754/s_remquol.c: New file. * math/libm-test.c (remquo_test): New function. * sysdeps/libm-ieee754/s_rintl.c: Handle implicit leading one correctly. 1997-03-22 14:06 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add s_nan. * sysdeps/libm-ieee754/s_nan.c: New file. Implement `nan' function. * sysdeps/libm-ieee754/s_nanf.c: New file. Implement `nanf' function. * sysdeps/libm-ieee754/s_nanl.c: New file. Implement `nanl' function. * math/libm-test.c (basic_tests): Add tests for `nan' function. * math/libm-test.c (copysign_test): New function. (main): Call copysign_test. 1997-03-22 06:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_nextafter.c: Return y if x == y. * sysdeps/libm-ieee754/s_nextafterf.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-i387/s_nextafterl.c: Likewise. * math/libm-test.c (fdim_test, fmin_test, fmax_test, nextafter_test): New functions. Test these functions. (main): Call above new functions. 1997-03-22 04:53 Ulrich Drepper <drepper@cygnus.com> * Net release 2.0.2. 1997-03-22 04:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Define as alias for XTABS. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h: Partly revert patch by Andreas Schwab of Sun Dec 15 16:33:44 1996. Proposed by Thomas Bushnell <thomas@gnu.ai.mit.edu>. 1997-03-21 13:41 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/sparc/dl-machine.h (elf_machine_rel): Rewritten as for i386. Check here for non-SHN_UNDEF STB_LOCAL symbols don't do any lookup or consult their values. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): New macros. * elf/rtld.c (dl_main): Pass ELF_MACHINE_RELOC_NOPLT to _dl_lookup_symbol in place of DL_LOOKUP_NOPLT. * sysdeps/i386/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): New macro. * sysdeps/i386/dl-machine.h (elf_machine_rel): Rewritten to do the symbol lookup before checking reloc type except for R_386_RELATIVE. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): New macros. * elf/dl-reloc.c (RESOLVE): Remove STB_LOCAL check; let it be per-machine since it supposedly can't happen on i386. * elf/dl-lookup.c (do_lookup): Change arg FLAGS to RELOC_TYPE. Use elf_machine_lookup_{noexec,noplt}_p macros on it. Remove gratuitous indirection from REF arg; change callers. (_dl_lookup_symbol, _dl_lookup_versioned_symbol): Change arg name. (_dl_lookup_symbol_skip, _dl_lookup_versioned_symbol_skip): Remove FLAGS arg altogether. * elf/dlsym.c: Remove argument of FLAGS parameter. * elf/dlvsym.c: Likewise. * elf/link.h: Update decls. * Makefile (distribute): Add BUGS.
1997-03-23 01:54:07 +00:00
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.
Update. 1997-03-23 02:11 Ulrich Drepper <drepper@cygnus.com> * time/sys/time.h: Make values ITIMER_* also available as macros. * elf/dl-support.c (_dl_sysdep_read_whole_file): Don't call __fstat but instead __fxstat directly to avoid dependency on libc.a when inline failed. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_read_whole_file): Likewise. * math/Makefile (libm-routines): Add s_remquo. * sysdeps/libm-i387/s_remquo.S: New file. * sysdeps/libm-i387/s_remquof.S: New file. * sysdeps/libm-i387/s_remquol.S: New file. * sysdeps/libm-ieee754/s_remquo.c: New file. * sysdeps/libm-ieee754/s_remquof.c: New file. * sysdeps/libm-ieee754/s_remquol.c: New file. * math/libm-test.c (remquo_test): New function. * sysdeps/libm-ieee754/s_rintl.c: Handle implicit leading one correctly. 1997-03-22 14:06 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add s_nan. * sysdeps/libm-ieee754/s_nan.c: New file. Implement `nan' function. * sysdeps/libm-ieee754/s_nanf.c: New file. Implement `nanf' function. * sysdeps/libm-ieee754/s_nanl.c: New file. Implement `nanl' function. * math/libm-test.c (basic_tests): Add tests for `nan' function. * math/libm-test.c (copysign_test): New function. (main): Call copysign_test. 1997-03-22 06:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_nextafter.c: Return y if x == y. * sysdeps/libm-ieee754/s_nextafterf.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-i387/s_nextafterl.c: Likewise. * math/libm-test.c (fdim_test, fmin_test, fmax_test, nextafter_test): New functions. Test these functions. (main): Call above new functions. 1997-03-22 04:53 Ulrich Drepper <drepper@cygnus.com> * Net release 2.0.2. 1997-03-22 04:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Define as alias for XTABS. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h: Partly revert patch by Andreas Schwab of Sun Dec 15 16:33:44 1996. Proposed by Thomas Bushnell <thomas@gnu.ai.mit.edu>. 1997-03-21 13:41 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/sparc/dl-machine.h (elf_machine_rel): Rewritten as for i386. Check here for non-SHN_UNDEF STB_LOCAL symbols don't do any lookup or consult their values. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): New macros. * elf/rtld.c (dl_main): Pass ELF_MACHINE_RELOC_NOPLT to _dl_lookup_symbol in place of DL_LOOKUP_NOPLT. * sysdeps/i386/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): New macro. * sysdeps/i386/dl-machine.h (elf_machine_rel): Rewritten to do the symbol lookup before checking reloc type except for R_386_RELATIVE. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): New macros. * elf/dl-reloc.c (RESOLVE): Remove STB_LOCAL check; let it be per-machine since it supposedly can't happen on i386. * elf/dl-lookup.c (do_lookup): Change arg FLAGS to RELOC_TYPE. Use elf_machine_lookup_{noexec,noplt}_p macros on it. Remove gratuitous indirection from REF arg; change callers. (_dl_lookup_symbol, _dl_lookup_versioned_symbol): Change arg name. (_dl_lookup_symbol_skip, _dl_lookup_versioned_symbol_skip): Remove FLAGS arg altogether. * elf/dlsym.c: Remove argument of FLAGS parameter. * elf/dlvsym.c: Likewise. * elf/link.h: Update decls. * Makefile (distribute): Add BUGS.
1997-03-23 01:54:07 +00:00
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
Prefer https to http for gnu.org and fsf.org URLs Also, change sources.redhat.com to sourceware.org. This patch was automatically generated by running the following shell script, which uses GNU sed, and which avoids modifying files imported from upstream: sed -ri ' s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g ' \ $(find $(git ls-files) -prune -type f \ ! -name '*.po' \ ! -name 'ChangeLog*' \ ! -path COPYING ! -path COPYING.LIB \ ! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \ ! -path manual/texinfo.tex ! -path scripts/config.guess \ ! -path scripts/config.sub ! -path scripts/install-sh \ ! -path scripts/mkinstalldirs ! -path scripts/move-if-change \ ! -path INSTALL ! -path locale/programs/charmap-kw.h \ ! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \ ! '(' -name configure \ -execdir test -f configure.ac -o -f configure.in ';' ')' \ ! '(' -name preconfigure \ -execdir test -f preconfigure.ac ';' ')' \ -print) and then by running 'make dist-prepare' to regenerate files built from the altered files, and then executing the following to cleanup: chmod a+x sysdeps/unix/sysv/linux/riscv/configure # Omit irrelevant whitespace and comment-only changes, # perhaps from a slightly-different Autoconf version. git checkout -f \ sysdeps/csky/configure \ sysdeps/hppa/configure \ sysdeps/riscv/configure \ sysdeps/unix/sysv/linux/csky/configure # Omit changes that caused a pre-commit check to fail like this: # remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines git checkout -f \ sysdeps/powerpc/powerpc64/ppc-mcount.S \ sysdeps/unix/sysv/linux/s390/s390-64/syscall.S # Omit change that caused a pre-commit check to fail like this: # remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 05:40:42 +00:00
<https://www.gnu.org/licenses/>. */
Update. 1997-03-23 02:11 Ulrich Drepper <drepper@cygnus.com> * time/sys/time.h: Make values ITIMER_* also available as macros. * elf/dl-support.c (_dl_sysdep_read_whole_file): Don't call __fstat but instead __fxstat directly to avoid dependency on libc.a when inline failed. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_read_whole_file): Likewise. * math/Makefile (libm-routines): Add s_remquo. * sysdeps/libm-i387/s_remquo.S: New file. * sysdeps/libm-i387/s_remquof.S: New file. * sysdeps/libm-i387/s_remquol.S: New file. * sysdeps/libm-ieee754/s_remquo.c: New file. * sysdeps/libm-ieee754/s_remquof.c: New file. * sysdeps/libm-ieee754/s_remquol.c: New file. * math/libm-test.c (remquo_test): New function. * sysdeps/libm-ieee754/s_rintl.c: Handle implicit leading one correctly. 1997-03-22 14:06 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add s_nan. * sysdeps/libm-ieee754/s_nan.c: New file. Implement `nan' function. * sysdeps/libm-ieee754/s_nanf.c: New file. Implement `nanf' function. * sysdeps/libm-ieee754/s_nanl.c: New file. Implement `nanl' function. * math/libm-test.c (basic_tests): Add tests for `nan' function. * math/libm-test.c (copysign_test): New function. (main): Call copysign_test. 1997-03-22 06:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_nextafter.c: Return y if x == y. * sysdeps/libm-ieee754/s_nextafterf.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-i387/s_nextafterl.c: Likewise. * math/libm-test.c (fdim_test, fmin_test, fmax_test, nextafter_test): New functions. Test these functions. (main): Call above new functions. 1997-03-22 04:53 Ulrich Drepper <drepper@cygnus.com> * Net release 2.0.2. 1997-03-22 04:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Define as alias for XTABS. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h: Partly revert patch by Andreas Schwab of Sun Dec 15 16:33:44 1996. Proposed by Thomas Bushnell <thomas@gnu.ai.mit.edu>. 1997-03-21 13:41 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/sparc/dl-machine.h (elf_machine_rel): Rewritten as for i386. Check here for non-SHN_UNDEF STB_LOCAL symbols don't do any lookup or consult their values. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): New macros. * elf/rtld.c (dl_main): Pass ELF_MACHINE_RELOC_NOPLT to _dl_lookup_symbol in place of DL_LOOKUP_NOPLT. * sysdeps/i386/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): New macro. * sysdeps/i386/dl-machine.h (elf_machine_rel): Rewritten to do the symbol lookup before checking reloc type except for R_386_RELATIVE. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): New macros. * elf/dl-reloc.c (RESOLVE): Remove STB_LOCAL check; let it be per-machine since it supposedly can't happen on i386. * elf/dl-lookup.c (do_lookup): Change arg FLAGS to RELOC_TYPE. Use elf_machine_lookup_{noexec,noplt}_p macros on it. Remove gratuitous indirection from REF arg; change callers. (_dl_lookup_symbol, _dl_lookup_versioned_symbol): Change arg name. (_dl_lookup_symbol_skip, _dl_lookup_versioned_symbol_skip): Remove FLAGS arg altogether. * elf/dlsym.c: Remove argument of FLAGS parameter. * elf/dlvsym.c: Likewise. * elf/link.h: Update decls. * Makefile (distribute): Add BUGS.
1997-03-23 01:54:07 +00:00
Use trunc functions not __trunc functions in glibc libm. Continuing the move to use, within libm, public names for libm functions that can be inlined as built-in functions on many architectures, this patch moves calls to __trunc functions to call the corresponding trunc names instead, with asm redirection to __trunc when the calls are not inlined. Tested for x86_64, and with build-many-glibcs.py. * include/math.h [!_ISOMAC && !(__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0) && !NO_MATH_REDIRECT] (trunc): Redirect using MATH_REDIRECT. * sysdeps/aarch64/fpu/s_trunc.c: Define NO_MATH_REDIRECT before header inclusion. * sysdeps/aarch64/fpu/s_truncf.c: Likewise. * sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Likewise. * sysdeps/ieee754/float128/s_truncf128.c: Likewise. * sysdeps/ieee754/dbl-64/s_trunc.c: Likewise. * sysdeps/ieee754/flt-32/s_truncf.c: Likewise. * sysdeps/ieee754/ldbl-128/s_truncl.c: Likewise. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c: Likewise. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c: Likewise. * sysdeps/riscv/rv64/rvd/s_trunc.c: Likewise. * sysdeps/riscv/rvf/s_truncf.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c: Likewise. * sysdeps/x86_64/fpu/multiarch/s_trunc.c: Likewise. * sysdeps/x86_64/fpu/multiarch/s_truncf.c: Likewise. * sysdeps/m68k/m680x0/fpu/s_trunc_template.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_truncl.c: Likewise. (ceil): Redirect to __ceil. (floor): Redirect to __floor. (trunc): Redirect to __trunc. (__truncl): Call trunc instead of __trunc. * sysdeps/powerpc/fpu/math_private.h [_ARCH_PWR5X] (__trunc): Remove macro. [_ARCH_PWR5X] (__truncf): Likewise. * sysdeps/ieee754/dbl-64/e_gamma_r.c (__ieee754_gamma_r): Use trunc functions instead of __trunc variants. * sysdeps/ieee754/flt-32/e_gammaf_r.c (__ieee754_gammaf_r): Likewise. * sysdeps/ieee754/ldbl-128/e_gammal_r.c (__ieee754_gammal_r): Likewise. * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (__ieee754_gammal_r): Likewise. * sysdeps/ieee754/ldbl-96/e_gammal_r.c (__ieee754_gammal_r): Likewise.
2018-09-20 21:11:10 +00:00
#define NO_MATH_REDIRECT
Update. 1997-03-23 02:11 Ulrich Drepper <drepper@cygnus.com> * time/sys/time.h: Make values ITIMER_* also available as macros. * elf/dl-support.c (_dl_sysdep_read_whole_file): Don't call __fstat but instead __fxstat directly to avoid dependency on libc.a when inline failed. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_read_whole_file): Likewise. * math/Makefile (libm-routines): Add s_remquo. * sysdeps/libm-i387/s_remquo.S: New file. * sysdeps/libm-i387/s_remquof.S: New file. * sysdeps/libm-i387/s_remquol.S: New file. * sysdeps/libm-ieee754/s_remquo.c: New file. * sysdeps/libm-ieee754/s_remquof.c: New file. * sysdeps/libm-ieee754/s_remquol.c: New file. * math/libm-test.c (remquo_test): New function. * sysdeps/libm-ieee754/s_rintl.c: Handle implicit leading one correctly. 1997-03-22 14:06 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add s_nan. * sysdeps/libm-ieee754/s_nan.c: New file. Implement `nan' function. * sysdeps/libm-ieee754/s_nanf.c: New file. Implement `nanf' function. * sysdeps/libm-ieee754/s_nanl.c: New file. Implement `nanl' function. * math/libm-test.c (basic_tests): Add tests for `nan' function. * math/libm-test.c (copysign_test): New function. (main): Call copysign_test. 1997-03-22 06:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_nextafter.c: Return y if x == y. * sysdeps/libm-ieee754/s_nextafterf.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-i387/s_nextafterl.c: Likewise. * math/libm-test.c (fdim_test, fmin_test, fmax_test, nextafter_test): New functions. Test these functions. (main): Call above new functions. 1997-03-22 04:53 Ulrich Drepper <drepper@cygnus.com> * Net release 2.0.2. 1997-03-22 04:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Define as alias for XTABS. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h: Partly revert patch by Andreas Schwab of Sun Dec 15 16:33:44 1996. Proposed by Thomas Bushnell <thomas@gnu.ai.mit.edu>. 1997-03-21 13:41 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/sparc/dl-machine.h (elf_machine_rel): Rewritten as for i386. Check here for non-SHN_UNDEF STB_LOCAL symbols don't do any lookup or consult their values. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): New macros. * elf/rtld.c (dl_main): Pass ELF_MACHINE_RELOC_NOPLT to _dl_lookup_symbol in place of DL_LOOKUP_NOPLT. * sysdeps/i386/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): New macro. * sysdeps/i386/dl-machine.h (elf_machine_rel): Rewritten to do the symbol lookup before checking reloc type except for R_386_RELATIVE. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): New macros. * elf/dl-reloc.c (RESOLVE): Remove STB_LOCAL check; let it be per-machine since it supposedly can't happen on i386. * elf/dl-lookup.c (do_lookup): Change arg FLAGS to RELOC_TYPE. Use elf_machine_lookup_{noexec,noplt}_p macros on it. Remove gratuitous indirection from REF arg; change callers. (_dl_lookup_symbol, _dl_lookup_versioned_symbol): Change arg name. (_dl_lookup_symbol_skip, _dl_lookup_versioned_symbol_skip): Remove FLAGS arg altogether. * elf/dlsym.c: Remove argument of FLAGS parameter. * elf/dlvsym.c: Likewise. * elf/link.h: Update decls. * Makefile (distribute): Add BUGS.
1997-03-23 01:54:07 +00:00
#include <math.h>
#include <math_private.h>
Use libm_alias_float in flt-32. This patch makes flt-32 libm functions use libm_alias_float to define public interfaces (in cases where _Float32 aliases of those interfaces would be appropriate, so not for finitef / isinff / isnanf). Tested for x86_64. Also tested with build-many-glibcs.py that installed stripped shared libraries are unchanged by the patch. * sysdeps/ieee754/flt-32/s_asinhf.c: Include <libm-alias-float.h>. (asinhf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_atanf.c: Include <libm-alias-float.h>. (atanf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_cbrtf.c: Include <libm-alias-float.h>. (cbrtf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_ceilf.c: Include <libm-alias-float.h>. (ceilf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_copysignf.c: Include <libm-alias-float.h>. (copysignf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_cosf.c: Include <libm-alias-float.h>. (cosf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_erff.c: Include <libm-alias-float.h>. (erff): Define using libm_alias_float. (erfcf): Likewise. * sysdeps/ieee754/flt-32/s_expm1f.c: Include <libm-alias-float.h>. (expm1f): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_fabsf.c: Include <libm-alias-float.h>. (fabsf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_floorf.c: Include <libm-alias-float.h>. (floorf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_frexpf.c: Include <libm-alias-float.h>. (frexpf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_fromfpf.c (fromfpf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_fromfpf_main.c: Include <libm-alias-float.h>. * sysdeps/ieee754/flt-32/s_fromfpxf.c (fromfpxf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_getpayloadf.c: Include <libm-alias-float.h>. (getpayloadf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_llrintf.c: Include <libm-alias-float.h>. (llrintf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_llroundf.c: Include <libm-alias-float.h>. (llroundf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_logbf.c: Include <libm-alias-float.h>. (logbf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_lrintf.c: Include <libm-alias-float.h>. (lrintf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_lroundf.c: Include <libm-alias-float.h>. (lroundf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_modff.c: Include <libm-alias-float.h>. (modff): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_nearbyintf.c: Include <libm-alias-float.h>. (nearbyintf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_nextafterf.c: Include <libm-alias-float.h>. (nextafterf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_nextupf.c: Include <libm-alias-float.h>. (nextupf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_remquof.c: Include <libm-alias-float.h>. (remquof): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_rintf.c: Include <libm-alias-float.h>. (rintf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_roundevenf.c: Include <libm-alias-float.h>. (roundevenf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_roundf.c: Include <libm-alias-float.h>. (roundf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_setpayloadf.c (setpayloadf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_setpayloadf_main.c: Include <libm-alias-float.h>. * sysdeps/ieee754/flt-32/s_setpayloadsigf.c (setpayloadsigf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_sincosf.c: Include <libm-alias-float.h>. (sincosf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_sinf.c: Include <libm-alias-float.h>. (sinf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_tanf.c: Include <libm-alias-float.h>. (tanf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_tanhf.c: Include <libm-alias-float.h>. (tanhf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_totalorderf.c: Include <libm-alias-float.h>. (totalorderf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_totalordermagf.c: Include <libm-alias-float.h>. (totalordermagf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_truncf.c: Include <libm-alias-float.h>. (truncf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_ufromfpf.c (ufromfpf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_ufromfpxf.c (ufromfpxf): Define using libm_alias_float.
2017-09-22 20:24:12 +00:00
#include <libm-alias-float.h>
#include <math-use-builtins.h>
Update. 1997-03-23 02:11 Ulrich Drepper <drepper@cygnus.com> * time/sys/time.h: Make values ITIMER_* also available as macros. * elf/dl-support.c (_dl_sysdep_read_whole_file): Don't call __fstat but instead __fxstat directly to avoid dependency on libc.a when inline failed. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_read_whole_file): Likewise. * math/Makefile (libm-routines): Add s_remquo. * sysdeps/libm-i387/s_remquo.S: New file. * sysdeps/libm-i387/s_remquof.S: New file. * sysdeps/libm-i387/s_remquol.S: New file. * sysdeps/libm-ieee754/s_remquo.c: New file. * sysdeps/libm-ieee754/s_remquof.c: New file. * sysdeps/libm-ieee754/s_remquol.c: New file. * math/libm-test.c (remquo_test): New function. * sysdeps/libm-ieee754/s_rintl.c: Handle implicit leading one correctly. 1997-03-22 14:06 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add s_nan. * sysdeps/libm-ieee754/s_nan.c: New file. Implement `nan' function. * sysdeps/libm-ieee754/s_nanf.c: New file. Implement `nanf' function. * sysdeps/libm-ieee754/s_nanl.c: New file. Implement `nanl' function. * math/libm-test.c (basic_tests): Add tests for `nan' function. * math/libm-test.c (copysign_test): New function. (main): Call copysign_test. 1997-03-22 06:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_nextafter.c: Return y if x == y. * sysdeps/libm-ieee754/s_nextafterf.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-i387/s_nextafterl.c: Likewise. * math/libm-test.c (fdim_test, fmin_test, fmax_test, nextafter_test): New functions. Test these functions. (main): Call above new functions. 1997-03-22 04:53 Ulrich Drepper <drepper@cygnus.com> * Net release 2.0.2. 1997-03-22 04:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Define as alias for XTABS. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h: Partly revert patch by Andreas Schwab of Sun Dec 15 16:33:44 1996. Proposed by Thomas Bushnell <thomas@gnu.ai.mit.edu>. 1997-03-21 13:41 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/sparc/dl-machine.h (elf_machine_rel): Rewritten as for i386. Check here for non-SHN_UNDEF STB_LOCAL symbols don't do any lookup or consult their values. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): New macros. * elf/rtld.c (dl_main): Pass ELF_MACHINE_RELOC_NOPLT to _dl_lookup_symbol in place of DL_LOOKUP_NOPLT. * sysdeps/i386/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): New macro. * sysdeps/i386/dl-machine.h (elf_machine_rel): Rewritten to do the symbol lookup before checking reloc type except for R_386_RELATIVE. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): New macros. * elf/dl-reloc.c (RESOLVE): Remove STB_LOCAL check; let it be per-machine since it supposedly can't happen on i386. * elf/dl-lookup.c (do_lookup): Change arg FLAGS to RELOC_TYPE. Use elf_machine_lookup_{noexec,noplt}_p macros on it. Remove gratuitous indirection from REF arg; change callers. (_dl_lookup_symbol, _dl_lookup_versioned_symbol): Change arg name. (_dl_lookup_symbol_skip, _dl_lookup_versioned_symbol_skip): Remove FLAGS arg altogether. * elf/dlsym.c: Remove argument of FLAGS parameter. * elf/dlvsym.c: Likewise. * elf/link.h: Update decls. * Makefile (distribute): Add BUGS.
1997-03-23 01:54:07 +00:00
float
__truncf (float x)
{
#if USE_TRUNCF_BUILTIN
return __builtin_truncf (x);
#else
/* Use generic implementation. */
Update. 1997-03-23 02:11 Ulrich Drepper <drepper@cygnus.com> * time/sys/time.h: Make values ITIMER_* also available as macros. * elf/dl-support.c (_dl_sysdep_read_whole_file): Don't call __fstat but instead __fxstat directly to avoid dependency on libc.a when inline failed. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_read_whole_file): Likewise. * math/Makefile (libm-routines): Add s_remquo. * sysdeps/libm-i387/s_remquo.S: New file. * sysdeps/libm-i387/s_remquof.S: New file. * sysdeps/libm-i387/s_remquol.S: New file. * sysdeps/libm-ieee754/s_remquo.c: New file. * sysdeps/libm-ieee754/s_remquof.c: New file. * sysdeps/libm-ieee754/s_remquol.c: New file. * math/libm-test.c (remquo_test): New function. * sysdeps/libm-ieee754/s_rintl.c: Handle implicit leading one correctly. 1997-03-22 14:06 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add s_nan. * sysdeps/libm-ieee754/s_nan.c: New file. Implement `nan' function. * sysdeps/libm-ieee754/s_nanf.c: New file. Implement `nanf' function. * sysdeps/libm-ieee754/s_nanl.c: New file. Implement `nanl' function. * math/libm-test.c (basic_tests): Add tests for `nan' function. * math/libm-test.c (copysign_test): New function. (main): Call copysign_test. 1997-03-22 06:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_nextafter.c: Return y if x == y. * sysdeps/libm-ieee754/s_nextafterf.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-i387/s_nextafterl.c: Likewise. * math/libm-test.c (fdim_test, fmin_test, fmax_test, nextafter_test): New functions. Test these functions. (main): Call above new functions. 1997-03-22 04:53 Ulrich Drepper <drepper@cygnus.com> * Net release 2.0.2. 1997-03-22 04:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Define as alias for XTABS. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h: Partly revert patch by Andreas Schwab of Sun Dec 15 16:33:44 1996. Proposed by Thomas Bushnell <thomas@gnu.ai.mit.edu>. 1997-03-21 13:41 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/sparc/dl-machine.h (elf_machine_rel): Rewritten as for i386. Check here for non-SHN_UNDEF STB_LOCAL symbols don't do any lookup or consult their values. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): New macros. * elf/rtld.c (dl_main): Pass ELF_MACHINE_RELOC_NOPLT to _dl_lookup_symbol in place of DL_LOOKUP_NOPLT. * sysdeps/i386/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): New macro. * sysdeps/i386/dl-machine.h (elf_machine_rel): Rewritten to do the symbol lookup before checking reloc type except for R_386_RELATIVE. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): New macros. * elf/dl-reloc.c (RESOLVE): Remove STB_LOCAL check; let it be per-machine since it supposedly can't happen on i386. * elf/dl-lookup.c (do_lookup): Change arg FLAGS to RELOC_TYPE. Use elf_machine_lookup_{noexec,noplt}_p macros on it. Remove gratuitous indirection from REF arg; change callers. (_dl_lookup_symbol, _dl_lookup_versioned_symbol): Change arg name. (_dl_lookup_symbol_skip, _dl_lookup_versioned_symbol_skip): Remove FLAGS arg altogether. * elf/dlsym.c: Remove argument of FLAGS parameter. * elf/dlvsym.c: Likewise. * elf/link.h: Update decls. * Makefile (distribute): Add BUGS.
1997-03-23 01:54:07 +00:00
int32_t i0, j0;
int sx;
GET_FLOAT_WORD (i0, x);
sx = i0 & 0x80000000;
j0 = ((i0 >> 23) & 0xff) - 0x7f;
if (j0 < 23)
{
if (j0 < 0)
/* The magnitude of the number is < 1 so the result is +-0. */
SET_FLOAT_WORD (x, sx);
else
SET_FLOAT_WORD (x, sx | (i0 & ~(0x007fffff >> j0)));
Update. 1997-03-23 02:11 Ulrich Drepper <drepper@cygnus.com> * time/sys/time.h: Make values ITIMER_* also available as macros. * elf/dl-support.c (_dl_sysdep_read_whole_file): Don't call __fstat but instead __fxstat directly to avoid dependency on libc.a when inline failed. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_read_whole_file): Likewise. * math/Makefile (libm-routines): Add s_remquo. * sysdeps/libm-i387/s_remquo.S: New file. * sysdeps/libm-i387/s_remquof.S: New file. * sysdeps/libm-i387/s_remquol.S: New file. * sysdeps/libm-ieee754/s_remquo.c: New file. * sysdeps/libm-ieee754/s_remquof.c: New file. * sysdeps/libm-ieee754/s_remquol.c: New file. * math/libm-test.c (remquo_test): New function. * sysdeps/libm-ieee754/s_rintl.c: Handle implicit leading one correctly. 1997-03-22 14:06 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add s_nan. * sysdeps/libm-ieee754/s_nan.c: New file. Implement `nan' function. * sysdeps/libm-ieee754/s_nanf.c: New file. Implement `nanf' function. * sysdeps/libm-ieee754/s_nanl.c: New file. Implement `nanl' function. * math/libm-test.c (basic_tests): Add tests for `nan' function. * math/libm-test.c (copysign_test): New function. (main): Call copysign_test. 1997-03-22 06:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_nextafter.c: Return y if x == y. * sysdeps/libm-ieee754/s_nextafterf.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-i387/s_nextafterl.c: Likewise. * math/libm-test.c (fdim_test, fmin_test, fmax_test, nextafter_test): New functions. Test these functions. (main): Call above new functions. 1997-03-22 04:53 Ulrich Drepper <drepper@cygnus.com> * Net release 2.0.2. 1997-03-22 04:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Define as alias for XTABS. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h: Partly revert patch by Andreas Schwab of Sun Dec 15 16:33:44 1996. Proposed by Thomas Bushnell <thomas@gnu.ai.mit.edu>. 1997-03-21 13:41 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/sparc/dl-machine.h (elf_machine_rel): Rewritten as for i386. Check here for non-SHN_UNDEF STB_LOCAL symbols don't do any lookup or consult their values. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): New macros. * elf/rtld.c (dl_main): Pass ELF_MACHINE_RELOC_NOPLT to _dl_lookup_symbol in place of DL_LOOKUP_NOPLT. * sysdeps/i386/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): New macro. * sysdeps/i386/dl-machine.h (elf_machine_rel): Rewritten to do the symbol lookup before checking reloc type except for R_386_RELATIVE. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): New macros. * elf/dl-reloc.c (RESOLVE): Remove STB_LOCAL check; let it be per-machine since it supposedly can't happen on i386. * elf/dl-lookup.c (do_lookup): Change arg FLAGS to RELOC_TYPE. Use elf_machine_lookup_{noexec,noplt}_p macros on it. Remove gratuitous indirection from REF arg; change callers. (_dl_lookup_symbol, _dl_lookup_versioned_symbol): Change arg name. (_dl_lookup_symbol_skip, _dl_lookup_versioned_symbol_skip): Remove FLAGS arg altogether. * elf/dlsym.c: Remove argument of FLAGS parameter. * elf/dlvsym.c: Likewise. * elf/link.h: Update decls. * Makefile (distribute): Add BUGS.
1997-03-23 01:54:07 +00:00
}
else
{
if (j0 == 0x80)
/* x is inf or NaN. */
return x + x;
}
return x;
#endif /* ! USE_TRUNCF_BUILTIN */
Update. 1997-03-23 02:11 Ulrich Drepper <drepper@cygnus.com> * time/sys/time.h: Make values ITIMER_* also available as macros. * elf/dl-support.c (_dl_sysdep_read_whole_file): Don't call __fstat but instead __fxstat directly to avoid dependency on libc.a when inline failed. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_read_whole_file): Likewise. * math/Makefile (libm-routines): Add s_remquo. * sysdeps/libm-i387/s_remquo.S: New file. * sysdeps/libm-i387/s_remquof.S: New file. * sysdeps/libm-i387/s_remquol.S: New file. * sysdeps/libm-ieee754/s_remquo.c: New file. * sysdeps/libm-ieee754/s_remquof.c: New file. * sysdeps/libm-ieee754/s_remquol.c: New file. * math/libm-test.c (remquo_test): New function. * sysdeps/libm-ieee754/s_rintl.c: Handle implicit leading one correctly. 1997-03-22 14:06 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add s_nan. * sysdeps/libm-ieee754/s_nan.c: New file. Implement `nan' function. * sysdeps/libm-ieee754/s_nanf.c: New file. Implement `nanf' function. * sysdeps/libm-ieee754/s_nanl.c: New file. Implement `nanl' function. * math/libm-test.c (basic_tests): Add tests for `nan' function. * math/libm-test.c (copysign_test): New function. (main): Call copysign_test. 1997-03-22 06:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_nextafter.c: Return y if x == y. * sysdeps/libm-ieee754/s_nextafterf.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-i387/s_nextafterl.c: Likewise. * math/libm-test.c (fdim_test, fmin_test, fmax_test, nextafter_test): New functions. Test these functions. (main): Call above new functions. 1997-03-22 04:53 Ulrich Drepper <drepper@cygnus.com> * Net release 2.0.2. 1997-03-22 04:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/termbits.h (OXTABS): Define as alias for XTABS. * sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise. * termios/sys/ttydefaults.h: Partly revert patch by Andreas Schwab of Sun Dec 15 16:33:44 1996. Proposed by Thomas Bushnell <thomas@gnu.ai.mit.edu>. 1997-03-21 13:41 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/sparc/dl-machine.h (elf_machine_rel): Rewritten as for i386. Check here for non-SHN_UNDEF STB_LOCAL symbols don't do any lookup or consult their values. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p, ELF_MACHINE_RELOC_NOPLT): New macros. * elf/rtld.c (dl_main): Pass ELF_MACHINE_RELOC_NOPLT to _dl_lookup_symbol in place of DL_LOOKUP_NOPLT. * sysdeps/i386/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): New macro. * sysdeps/i386/dl-machine.h (elf_machine_rel): Rewritten to do the symbol lookup before checking reloc type except for R_386_RELATIVE. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): New macros. * elf/dl-reloc.c (RESOLVE): Remove STB_LOCAL check; let it be per-machine since it supposedly can't happen on i386. * elf/dl-lookup.c (do_lookup): Change arg FLAGS to RELOC_TYPE. Use elf_machine_lookup_{noexec,noplt}_p macros on it. Remove gratuitous indirection from REF arg; change callers. (_dl_lookup_symbol, _dl_lookup_versioned_symbol): Change arg name. (_dl_lookup_symbol_skip, _dl_lookup_versioned_symbol_skip): Remove FLAGS arg altogether. * elf/dlsym.c: Remove argument of FLAGS parameter. * elf/dlvsym.c: Likewise. * elf/link.h: Update decls. * Makefile (distribute): Add BUGS.
1997-03-23 01:54:07 +00:00
}
sparc64: add a VIS3 version of ceil, floor and trunc sparc64 passes floating point values in the floating point registers. As the the generic ceil, floor and trunc functions use integer instructions, it makes sense to provide a VIS3 version consisting in the the generic version compiled with -mvis3. GCC will then use movdtox, movxtod, movwtos and movstow instructions. sparc32 passes the floating point values in the integer registers, so it doesn't make sense to do the same. Changelog: * sysdeps/ieee754/dbl-64/s_trunc.c: Avoid alias renamed. * sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Likewise. * sysdeps/ieee754/flt-32/s_truncf.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/Makefile [$(subdir) = math && $(have-as-vis3) = yes] (libm-sysdep_routines): Add s_ceilf-vis3, s_ceil-vis3, s_floorf-vis3, s_floor-vis3, s_truncf-vis3, s_trunc-vis3. (CFLAGS-s_ceilf-vis3.c): New. Set to -Wa,-Av9d -mvis3. (CFLAGS-s_ceil-vis3.c): Likewise. (CFLAGS-s_floorf-vis3.c): Likewise. (CFLAGS-s_floor-vis3.c): Likewise. (CFLAGS-s_truncf-vis3.c): Likewise. (CFLAGS-s_trunc-vis3.c): Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c: New file. * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c: Likewise.
2016-07-31 21:45:52 +00:00
#ifndef __truncf
Use libm_alias_float in flt-32. This patch makes flt-32 libm functions use libm_alias_float to define public interfaces (in cases where _Float32 aliases of those interfaces would be appropriate, so not for finitef / isinff / isnanf). Tested for x86_64. Also tested with build-many-glibcs.py that installed stripped shared libraries are unchanged by the patch. * sysdeps/ieee754/flt-32/s_asinhf.c: Include <libm-alias-float.h>. (asinhf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_atanf.c: Include <libm-alias-float.h>. (atanf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_cbrtf.c: Include <libm-alias-float.h>. (cbrtf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_ceilf.c: Include <libm-alias-float.h>. (ceilf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_copysignf.c: Include <libm-alias-float.h>. (copysignf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_cosf.c: Include <libm-alias-float.h>. (cosf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_erff.c: Include <libm-alias-float.h>. (erff): Define using libm_alias_float. (erfcf): Likewise. * sysdeps/ieee754/flt-32/s_expm1f.c: Include <libm-alias-float.h>. (expm1f): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_fabsf.c: Include <libm-alias-float.h>. (fabsf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_floorf.c: Include <libm-alias-float.h>. (floorf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_frexpf.c: Include <libm-alias-float.h>. (frexpf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_fromfpf.c (fromfpf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_fromfpf_main.c: Include <libm-alias-float.h>. * sysdeps/ieee754/flt-32/s_fromfpxf.c (fromfpxf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_getpayloadf.c: Include <libm-alias-float.h>. (getpayloadf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_llrintf.c: Include <libm-alias-float.h>. (llrintf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_llroundf.c: Include <libm-alias-float.h>. (llroundf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_logbf.c: Include <libm-alias-float.h>. (logbf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_lrintf.c: Include <libm-alias-float.h>. (lrintf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_lroundf.c: Include <libm-alias-float.h>. (lroundf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_modff.c: Include <libm-alias-float.h>. (modff): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_nearbyintf.c: Include <libm-alias-float.h>. (nearbyintf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_nextafterf.c: Include <libm-alias-float.h>. (nextafterf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_nextupf.c: Include <libm-alias-float.h>. (nextupf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_remquof.c: Include <libm-alias-float.h>. (remquof): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_rintf.c: Include <libm-alias-float.h>. (rintf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_roundevenf.c: Include <libm-alias-float.h>. (roundevenf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_roundf.c: Include <libm-alias-float.h>. (roundf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_setpayloadf.c (setpayloadf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_setpayloadf_main.c: Include <libm-alias-float.h>. * sysdeps/ieee754/flt-32/s_setpayloadsigf.c (setpayloadsigf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_sincosf.c: Include <libm-alias-float.h>. (sincosf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_sinf.c: Include <libm-alias-float.h>. (sinf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_tanf.c: Include <libm-alias-float.h>. (tanf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_tanhf.c: Include <libm-alias-float.h>. (tanhf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_totalorderf.c: Include <libm-alias-float.h>. (totalorderf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_totalordermagf.c: Include <libm-alias-float.h>. (totalordermagf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_truncf.c: Include <libm-alias-float.h>. (truncf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_ufromfpf.c (ufromfpf): Define using libm_alias_float. * sysdeps/ieee754/flt-32/s_ufromfpxf.c (ufromfpxf): Define using libm_alias_float.
2017-09-22 20:24:12 +00:00
libm_alias_float (__trunc, trunc)
sparc64: add a VIS3 version of ceil, floor and trunc sparc64 passes floating point values in the floating point registers. As the the generic ceil, floor and trunc functions use integer instructions, it makes sense to provide a VIS3 version consisting in the the generic version compiled with -mvis3. GCC will then use movdtox, movxtod, movwtos and movstow instructions. sparc32 passes the floating point values in the integer registers, so it doesn't make sense to do the same. Changelog: * sysdeps/ieee754/dbl-64/s_trunc.c: Avoid alias renamed. * sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Likewise. * sysdeps/ieee754/flt-32/s_truncf.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/Makefile [$(subdir) = math && $(have-as-vis3) = yes] (libm-sysdep_routines): Add s_ceilf-vis3, s_ceil-vis3, s_floorf-vis3, s_floor-vis3, s_truncf-vis3, s_trunc-vis3. (CFLAGS-s_ceilf-vis3.c): New. Set to -Wa,-Av9d -mvis3. (CFLAGS-s_ceil-vis3.c): Likewise. (CFLAGS-s_floorf-vis3.c): Likewise. (CFLAGS-s_floor-vis3.c): Likewise. (CFLAGS-s_truncf-vis3.c): Likewise. (CFLAGS-s_trunc-vis3.c): Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c: New file. * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c: Likewise.
2016-07-31 21:45:52 +00:00
#endif