glibc/sysdeps/i386/fpu/e_exp.S

75 lines
1.5 KiB
ArmAsm
Raw Normal View History

/*
* Public domain.
*/
#include <machine/asm.h>
Avoid excess range in results from i386 exp, hypot, pow functions (bug 18980). i386 exp, hypot and pow functions can return overflowing and underflowing values with excess range and precision; ; Wilco Dijkstra's patches to make isfinite etc. expand inline cause this pre-existing issue to result in test failures. This patch fixes those functions to avoid excess range and precision in their return values. Appropriate macros are added for the repeated code sequences; in future I'll add more such macros and refactor existing code forcing underflow (with or without also eliminating excess range and precision from the return value) to use such macros. Tested for x86. If, after this patch, you still see x86 libm test failures with excess range or precision, please file bugs in Bugzilla. [BZ #18980] * sysdeps/i386/fpu/i386-math-asm.h (DEFINE_FLT_MIN): New macro. (DEFINE_DBL_MIN): Likewise. (FLT_NARROW_EVAL_UFLOW_NONNEG_NAN): Likewise. (DBL_NARROW_EVAL_UFLOW_NONNEG_NAN): Likewise. (FLT_NARROW_EVAL_UFLOW_NONNEG): Likewise. (DBL_NARROW_EVAL_UFLOW_NONNEG): Likewise. * sysdeps/i386/fpu/e_exp.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. (__exp_finite): Use DBL_NARROW_EVAL_UFLOW_NONNEG. * sysdeps/i386/fpu/e_exp10.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp10): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp10f.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_exp10f): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp2.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp2): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp2f.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_exp2f): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_expf.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_expf): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. (__expf_finite): Use FLT_NARROW_EVAL_UFLOW_NONNEG. * sysdeps/i386/fpu/e_hypot.S: Include <i386-math-asm.h>. (__ieee754_hypot): Use DBL_NARROW_EVAL. * sysdeps/i386/fpu/e_hypotf.S: Include <i386-math-asm.h>. (__ieee754_hypotf): Use FLT_NARROW_EVAL. * sysdeps/i386/fpu/e_pow.S: Include <i386-math-asm.h>. (__ieee754_pow): Use DBL_NARROW_EVAL. * sysdeps/i386/fpu/e_powf.S: Include <i386-math-asm.h>. (__ieee754_powf): Use FLT_NARROW_EVAL. * sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S (__ieee754_expf_sse2): Convert double-precision result to single precision. * sysdeps/i386/fpu/libm-test-ulps: Update.
2015-09-19 05:53:22 +08:00
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
Avoid excess range in results from i386 exp, hypot, pow functions (bug 18980). i386 exp, hypot and pow functions can return overflowing and underflowing values with excess range and precision; ; Wilco Dijkstra's patches to make isfinite etc. expand inline cause this pre-existing issue to result in test failures. This patch fixes those functions to avoid excess range and precision in their return values. Appropriate macros are added for the repeated code sequences; in future I'll add more such macros and refactor existing code forcing underflow (with or without also eliminating excess range and precision from the return value) to use such macros. Tested for x86. If, after this patch, you still see x86 libm test failures with excess range or precision, please file bugs in Bugzilla. [BZ #18980] * sysdeps/i386/fpu/i386-math-asm.h (DEFINE_FLT_MIN): New macro. (DEFINE_DBL_MIN): Likewise. (FLT_NARROW_EVAL_UFLOW_NONNEG_NAN): Likewise. (DBL_NARROW_EVAL_UFLOW_NONNEG_NAN): Likewise. (FLT_NARROW_EVAL_UFLOW_NONNEG): Likewise. (DBL_NARROW_EVAL_UFLOW_NONNEG): Likewise. * sysdeps/i386/fpu/e_exp.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. (__exp_finite): Use DBL_NARROW_EVAL_UFLOW_NONNEG. * sysdeps/i386/fpu/e_exp10.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp10): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp10f.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_exp10f): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp2.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp2): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp2f.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_exp2f): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_expf.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_expf): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. (__expf_finite): Use FLT_NARROW_EVAL_UFLOW_NONNEG. * sysdeps/i386/fpu/e_hypot.S: Include <i386-math-asm.h>. (__ieee754_hypot): Use DBL_NARROW_EVAL. * sysdeps/i386/fpu/e_hypotf.S: Include <i386-math-asm.h>. (__ieee754_hypotf): Use FLT_NARROW_EVAL. * sysdeps/i386/fpu/e_pow.S: Include <i386-math-asm.h>. (__ieee754_pow): Use DBL_NARROW_EVAL. * sysdeps/i386/fpu/e_powf.S: Include <i386-math-asm.h>. (__ieee754_powf): Use FLT_NARROW_EVAL. * sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S (__ieee754_expf_sse2): Convert double-precision result to single precision. * sysdeps/i386/fpu/libm-test-ulps: Update.
2015-09-19 05:53:22 +08:00
DEFINE_DBL_MIN
#ifdef PIC
# define MO(op) op##@GOTOFF(%ecx)
#else
# define MO(op) op
#endif
.text
/* e^x = 2^(x * log2(e)) */
ENTRY(__ieee754_exp)
#ifdef PIC
LOAD_PIC_REG (cx)
#endif
fldl 4(%esp)
Thu May 30 11:24:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> * po/header.pot: Replace with exact boilerplate pinard dictates. * sysdeps/i386/strtok.S (Lillegal_argument): Remove this code to set errno and the check that jumped to it. * sysdeps/mach/hurd/Makefile (errnos.d): Use $(sed-remove-objpfx). Thu May 30 03:21:57 1996 Ulrich Drepper <drepper@cygnus.com> * FAQ: Document need of gperf program for developers. * elf/elf.h: Fix typos in comments. * libio/stdio.h [!__STRICT_ANSI__ || _POSIX_SOURCE]: Add prototypes for `ctermid' and `cuserid'. * locale/programs/locale.c: Switch to user selected locale before printing variables. * math/Makefile [$(long-double-fcts)==yes]: Define long-m-routines and long-c-routines. Only if the `long double' data type is available we need to compile the functions. (libm-routines): Add $(long-m-routines). (routines): Remove isinfl, isnanl. Use new file s_isinfl and s_isnanl instead if `long double' is available. * math/math.h: Include <mathcalls.h> again to define `long double' functions. * math/math_private.h: Define data types, prototypes and access macros for `long double'. * stdlib/stdlib.h: Add prototypes for `strtoll' and `strtoull'. [GCC2 && OPTIMIZE]: Define strto{,u}ll as inline function which calls __strto{,u}q_internal. * stdlib/strfmon.c: Replace PTR by `void *'. * stdlib/strtoq.c: Define strtoll as weak alias. * stdlib/strtouq.c: Define strtoull as weak alias. * string/tester.c: Correct `strsep' test. * sysdeps/generic/strsep.c: Make compatible with BSD version. Trailing characters of skip set are not skipped. In this case empty tokens are returned. * sysdeps/i386/isinfl.c, sysdeps/i386/isnanl.c, sysdeps/ieee754/isinf.c, sysdeps/ieee754/isinfl.c, sysdeps/ieee754/isnan.c, sysdeps/ieee754/isnanl.c: Removed. We now use the versions part of libm. * sysdeps/i386/strsep.S: Removed. Generic C version is of similar speed. * sysdeps/i386/strtok.S: Remove support for `strsep'. * sysdeps/libm-i387/e_acosl.S, sysdeps/libm-i387/s_ceill.S, sysdeps/libm-i387/s_copysignl.S, sysdeps/libm-i387/s_finitel.S, sysdeps/libm-i387/s_floorl.S, sysdeps/libm-i387/s_isinfl.c, sysdeps/libm-i387/s_isnanl.c, sysdeps/libm-i387/s_nextafterl.c, sysdeps/libm-i387/s_rintl.S, sysdeps/libm-i387/s_significandl.S: New i387 specific math functions implementing `long double' versions. * sysdeps/libm-ieee754/s_ceill.c, sysdeps/libm-ieee754/s_copysignl.c, sysdeps/libm-ieee754/s_fabsl.c, sysdeps/libm-ieee754/s_finitel.c, sysdeps/libm-ieee754/s_floorl.c, sysdeps/libm-ieee754/s_isinfl.c, sysdeps/libm-ieee754/s_isnanl.c, sysdeps/libm-ieee754/s_nextafterl.c, sysdeps/libm-ieee754/s_rintl.c, sysdeps/libm-ieee754/s_scalbnl.c, sysdeps/libm-ieee754/s_significandl.c: New generic `long double' versions of libm functions. * sysdeps/libm-i387/e_exp.S: Add a few comments to explain the Intel FPU nonsense. * sysdeps/libm-i387/s_ceil.S, sysdeps/libm-i387/s_ceilf.S, sysdeps/libm-i387/s_floor.S, sysdeps/libm-i387/s_floorf.S: Correct handling of local variables. The old version created a stack frame but stored the values outside. * sysdeps/libm-ieee754/s_isinf.c, sysdeps/libm-ieee754/s_isnan.c [!NO_LONG_DOUBLE]: Define alias with `long double' versions name. * login/pututline_r.c: Include sys/stat.h. Fix typos. according to currently used locale for category LC_CTYPE by inet_nsap_ntoa. Now in <arpa/inet.h>. _IO_dup2 to contain complete parameter list.
1996-05-31 00:12:42 +08:00
/* I added the following ugly construct because exp(+-Inf) resulted
in NaN. The ugliness results from the bright minds at Intel.
update from main archive 961005 Sun Oct 6 02:05:52 1996 Ulrich Drepper <drepper@cygnus.com> * posix/getopt.c: Add casts to prevent warnings. * posix/regex.c: Likewise. * math/Makefile (long-m-routines, long-m-yes): Define to correct values to make `long double' functions available. (distribute): Add $(long-m-yes:=.c). * sysdeps/libm-i387/s_ceill.S: Correct loading of return value. Use long double instruction. * sysdeps/libm-ieee754/e_atanhl.c (huge): Correct constant. * sysdeps/libm-ieee754/e_asinhl.c: Likewise. * sysdeps/libm-ieee754/s_tanhl.c: Likewise. * sysdeps/libm-ieee754/e_coshl.c: New file. * sysdeps/libm-ieee754/s_asinh.c [!NO_LONG_DOUBLE]: Define names for `long double' version as alias. * sysdeps/libm-ieee754/s_atan.c: Likewise. * sysdeps/libm-ieee754/s_cbrt.c: Likewise. * sysdeps/libm-ieee754/s_ceil.c: Likewise. * sysdeps/libm-ieee754/s_copysign.c: Likewise. * sysdeps/libm-ieee754/s_cos.c: Likewise. * sysdeps/libm-ieee754/s_erf.c: Likewise. * sysdeps/libm-ieee754/s_expm1.c: Likewise. * sysdeps/libm-ieee754/s_fabs.c: Likewise. * sysdeps/libm-ieee754/s_finite.c: Likewise. * sysdeps/libm-ieee754/s_floor.c: Likewise. * sysdeps/libm-ieee754/s_frexp.c: Likewise. * sysdeps/libm-ieee754/s_ilogb.c: Likewise. * sysdeps/libm-ieee754/s_ldexp.c: Likewise. * sysdeps/libm-ieee754/s_log1p.c: Likewise. * sysdeps/libm-ieee754/s_logb.c: Likewise. * sysdeps/libm-ieee754/s_modf.c: Likewise. * sysdeps/libm-ieee754/s_nextafter.c: Likewise. * sysdeps/libm-ieee754/s_rint.c: Likewise. * sysdeps/libm-ieee754/s_scalbn.c: Likewise. * sysdeps/libm-ieee754/s_significand.c: Likewise. * sysdeps/libm-ieee754/s_sin.c: Likewise. * sysdeps/libm-ieee754/s_tan.c: Likewise. * sysdeps/libm-ieee754/s_tanh.c: Likewise. * sysdeps/libm-ieee754/w_acos.c: Likewise. * sysdeps/libm-ieee754/w_acosh.c: Likewise. * sysdeps/libm-ieee754/w_sin.c: Likewise. * sysdeps/libm-ieee754/w_atan2.c: Likewise. * sysdeps/libm-ieee754/w_atanh.c: Likewise. * sysdeps/libm-ieee754/w_cabs.c: Likewise. * sysdeps/libm-ieee754/w_cosh.c: Likewise. * sysdeps/libm-ieee754/w_drem.c: Likewise. * sysdeps/libm-ieee754/w_exp.c: Likewise. * sysdeps/libm-ieee754/w_fmod.c: Likewise. * sysdeps/libm-ieee754/w_gamma.c: Likewise. * sysdeps/libm-ieee754/w_gamma_r.c: Likewise. * sysdeps/libm-ieee754/w_hypot.c: Likewise. * sysdeps/libm-ieee754/w_j0.c: Likewise. * sysdeps/libm-ieee754/w_j1.c: Likewise. * sysdeps/libm-ieee754/w_jn.c: Likewise. * sysdeps/libm-ieee754/w_lgamma.c: Likewise. * sysdeps/libm-ieee754/w_lgamma_r.c: Likewise. * sysdeps/libm-ieee754/w_log.c: Likewise. * sysdeps/libm-ieee754/w_log10.c: Likewise. * sysdeps/libm-ieee754/w_pow.c: Likewise. * sysdeps/libm-ieee754/w_remainder.c: Likewise. * sysdeps/libm-ieee754/w_scalb.c: Likewise. * sysdeps/libm-ieee754/w_sinh.c: Likewise. * sysdeps/libm-ieee754/w_sqrt.c: Likewise. Stub files for missing long double math functions. * sysdeps/stub/e_acoshl.c: New file. * sysdeps/stub/e_hypotl.c: New file. * sysdeps/stub/e_j0l.c: New file. * sysdeps/stub/e_j1l.c: New file. * sysdeps/stub/e_jnl.c: New file. * sysdeps/stub/e_lgammal_r.c: New file. * sysdeps/stub/e_powl.c: New file. * sysdeps/stub/e_rem_pio2l.c: New file. * sysdeps/stub/e_sinhl.c: New file. * sysdeps/stub/k_cosl.c: New file. * sysdeps/stub/k_rem_pio2l.c: New file. * sysdeps/stub/k_sinl.c: New file. * sysdeps/stub/k_tanl.c: New file. * sysdeps/stub/s_erfl.c: New file. * sysdeps/stub/s_expm1l.c: New file. * sysdeps/i386/__longjmp.S: Use PSEUDO_END macro to provide .size directive. * sysdeps/i386/bsd-_setjmp.S: Likewise. * sysdeps/i386/bsd-setjmp.S: Likewise. * sysdeps/i386/memchr.S: Likewise. * sysdeps/i386/memcmp.S: Likewise. * sysdeps/i386/setjmp.S: Likewise. * sysdeps/i386/stpcpy.S: Likewise. * sysdeps/i386/stpncpy.S: Likewise. * sysdeps/i386/strchr.S: Likewise. * sysdeps/i386/strcspn.S: Likewise. * sysdeps/i386/strpbrk.S: Likewise. * sysdeps/i386/strrchr.S: Likewise. * sysdeps/i386/strspn.S: Likewise. * sysdeps/i386/strtok.S: Likewise. * sysdeps/i386/i486/strcat.S: Likewise. * sysdeps/i386/i486/strlen.S: Likewise. * sysdeps/i386/i586/memset.S: Likewise. * sysdeps/i386/i586/strchr.S: Likewise. * sysdeps/i386/i586/strlen.S: Likewise. * sysdeps/libm-i387/e_acos.S: Likewise. * sysdeps/libm-i387/e_acosl.S: Likewise. * sysdeps/libm-i387/e_asin.S: Likewise. * sysdeps/libm-i387/e_asinl.S: Likewise. * sysdeps/libm-i387/e_atan2.S: Likewise. * sysdeps/libm-i387/e_atan2l.S: Likewise. * sysdeps/libm-i387/e_exp.S: Likewise. * sysdeps/libm-i387/e_expl.S: Likewise. * sysdeps/libm-i387/e_fmod.S: Likewise. * sysdeps/libm-i387/e_fmodl.S: Likewise. * sysdeps/libm-i387/e_log.S: Likewise. * sysdeps/libm-i387/e_log10.S: Likewise. * sysdeps/libm-i387/e_log10l.S: Likewise. * sysdeps/libm-i387/e_logl.S: Likewise. * sysdeps/libm-i387/e_remainder.S: Likewise. * sysdeps/libm-i387/e_remainderf.S: Likewise. * sysdeps/libm-i387/e_remainderl.S: Likewise. * sysdeps/libm-i387/e_scalb.S: Likewise. * sysdeps/libm-i387/e_scalbl.S: Likewise. * sysdeps/libm-i387/e_sqrt.S: Likewise. * sysdeps/libm-i387/e_sqrtf.S: Likewise. * sysdeps/libm-i387/e_sqrtl.S: Likewise. * sysdeps/libm-i387/s_atan.S: Likewise. * sysdeps/libm-i387/s_atanf.S: Likewise. * sysdeps/libm-i387/s_atanl.S: Likewise. * sysdeps/libm-i387/s_ceil.S: Likewise. * sysdeps/libm-i387/s_ceilf.S: Likewise. * sysdeps/libm-i387/s_ceill.S: Likewise. * sysdeps/libm-i387/s_copysign.S: Likewise. * sysdeps/libm-i387/s_copysignf.S: Likewise. * sysdeps/libm-i387/s_copysignl.S: Likewise. * sysdeps/libm-i387/s_cos.S: Likewise. * sysdeps/libm-i387/s_cosf.S: Likewise. * sysdeps/libm-i387/s_cosl.S: Likewise. * sysdeps/libm-i387/s_finite.S: Likewise. * sysdeps/libm-i387/s_finitef.S: Likewise. * sysdeps/libm-i387/s_finitel.S: Likewise. * sysdeps/libm-i387/s_floor.S: Likewise. * sysdeps/libm-i387/s_floorf.S: Likewise. * sysdeps/libm-i387/s_floorl.S: Likewise. * sysdeps/libm-i387/s_ilogb.S: Likewise. * sysdeps/libm-i387/s_ilogbf.S: Likewise. * sysdeps/libm-i387/s_ilogbl.S: Likewise. * sysdeps/libm-i387/s_log1p.S: Likewise. * sysdeps/libm-i387/s_log1pf.S: Likewise. * sysdeps/libm-i387/s_log1pl.S: Likewise. * sysdeps/libm-i387/s_logb.S: Likewise. * sysdeps/libm-i387/s_logbf.S: Likewise. * sysdeps/libm-i387/s_logbl.S: Likewise. * sysdeps/libm-i387/s_rint.S: Likewise. * sysdeps/libm-i387/s_rintf.S: Likewise. * sysdeps/libm-i387/s_rintl.S: Likewise. * sysdeps/libm-i387/s_scalbn.S: Likewise. * sysdeps/libm-i387/s_scalbnf.S: Likewise. * sysdeps/libm-i387/s_scalbnl.S: Likewise. * sysdeps/libm-i387/s_significand.S: Likewise. * sysdeps/libm-i387/s_significandf.S: Likewise. * sysdeps/libm-i387/s_significandl.S: Likewise. * sysdeps/libm-i387/s_sin.S: Likewise. * sysdeps/libm-i387/s_sinf.S: Likewise. * sysdeps/libm-i387/s_sinl.S: Likewise. * sysdeps/libm-i387/s_tan.S: Likewise. * sysdeps/libm-i387/s_tanf.S: Likewise. * sysdeps/libm-i387/s_tanl.S: Likewise. * sysdeps/unix/sysv/linux/i386/clone.S: Add .size directive. * sysdeps/unix/sysv/linux/i386/mmap.S. Likewise. * sysdeps/unix/sysv/linux/i386/socket.S. Likewise. * sysdeps/unix/sysv/linux/i386/sysdep.S. More compact .size line. * sysdeps/i386/sysdep.h (ASM_SIZE_DIRECTIVE): New macro. Used to provide .size directive on ELF systems. * sysdeps/unix/sysv/linux/i386/profil-counter.h: Include <sigcontext.h> and rename parameter type to sigcontext. * sysdeps/unix/sysv/linux/i386/sigcontext.h New file. * sysdeps/unix/sysv/linux/i386/syscall.S: From Linux 2.1 on negative values might occur as positive results. Test against -125 to decide for error or not. * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise for system calls. Thu Oct 3 21:07:58 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/dl-open.c: Use _DYNAMIC instead of _dl_start to decide whether this is a statically linked program. The latter is now always defined. Fri Oct 4 02:08:10 1996 Bang Jun-Young <bangjy@nownuri.nowcom.co.kr> * po/ko.po: Update. Fri Oct 4 02:07:46 1996 Michel Robitaille <robitail@IRO.UMontreal.CA> * po/fr.po: New file. Fri Oct 4 05:04:52 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/i386/sigcontext.h: New file. Add support for MD5 crypt replacement. * Makefile (subdirs): Add crypt. * shlib-versions: Add entry for libcrypt. * crypt/md5-crypt.c: New file. * crypt/md5.c: New file. * crypt/md5.h: New file. * sysdeps/generic/crypt-entry.c: New file. * sysdeps/generic/crypt.h: New file. Thu Oct 3 20:53:23 1996 Andreas Jaeger <aj@arthur.pfalz.de> * dirent/tst-seekdir.c: Provide correct prototypes. * io/test-utime.c: Likewise. * malloc/mallocbug.c: Likewise. * posix/testfnm.c: Likewise. * stdio-common/xbug.c: Likewise. * sysdeps/posix/cuserid.c: Likewise. Wed Oct 2 13:33:48 1996 Richard Henderson <rth@tamu.edu> Provide optimized string functions for Alpha processors. * sysdeps/alpha/bzero.S: New file. * sysdeps/alpha/memset.S: New file. * sysdeps/alpha/stpcpy.S: New file. * sysdeps/alpha/stpncpy.S: New file. * sysdeps/alpha/strcat.S: New file. * sysdeps/alpha/strchr.S: New file. * sysdeps/alpha/strcpy.S: New file. * sysdeps/alpha/strncat.S: New file. * sysdeps/alpha/strncpy.S: New file. * sysdeps/alpha/strrchr.S: New file. * sysdeps/alpha/stxcpy.S: New file. * sysdeps/alpha/stxncpy.S: New file. * sysdeps/alpha/Makefile [$(sudir)==string]: Add stxcpy and stxncpy to sysdep_routines. Minor correction. Wed Oct 2 13:41:48 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/strtok.c: Don't set stored pointer to NULL when notheing is found. This guarantees all subsequent calls behave the same. * sysdeps/generic/strtok_r.c: Likewise. Mon Sep 30 22:27:36 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/posix/tempname.c (__stdio_gen_tempname): Don't declare `i' as const. Mon Sep 30 22:38:29 1996 Richard Henderson <rth@tamu.edu> * sysdeps/generic/strtok.c: When we hit EOS, don't set olds to NULL immediately; we're going to get called one more time. * sysdeps/generic/strtok_r.c: Likewise. Tue Oct 1 09:12:21 1996 Ulrich Drepper <drepper@cygnus.com> * locale/programs/ld-time.c: Always write some bytes at the end of the file even if no `era's are specified. * stdio-common/tmpname.c (tmpbuf): Don't define as array of pointers. Tue Oct 1 01:43:11 1996 Ulrich Drepper <drepper@cygnus.com> * libio/iofclose.c: Move unlocking to right position. Mon Sep 30 03:08:34 1996 Richard Henderson <rth@tamu.edu> * misc/Makefile: Kill force-wrapper. * misc/force-wrapper.c: Delete. * elf/eval.c: Add <string.h>. * gmon/sys/gmon_out.h: Nonsense like `char foo[sizeof(char*)]' followed by `bcopy(&ptr, &foo, sizeof(foo))' helps portability and binary compatibility not at all. Better to do `char *foo' followed by `foo = ptr' as it is much cleaner. (struct gmon_hdr): Fix version. (struct gmon_hist_hdr): Fix low_pc, high_pc, hist_size, prof_rate. (struct gmon_cg_arc_record): Fix from_pc, self_pc, count. * gmon/gmon.c: De-ansidecl-ify. (write_hist): De-bcopy-fy. (write_call_graph): Likewise. * gmon/mcount.c: Assume _MCOUNT_DECL does the entire declaration. * sysdeps/alpha/machine-gmon.h: Update _MCOUNT_DECL. * sysdeps/generic/machine-gmon.h: Likewise. * resolv/netdb.h: Add __set_h_errno to mimic __set_errno. * nss/getXXent_r.c: Use __set_h_errno to set h_errno in all funcs. * nss/nss_dns/dns-network.c: Likewise. * resolv/getunamaddr.c: Likewise. Also use __set_errno where needed. * resolv/getnetnamadr.c: Likewise. * resolv/res_debug.c: Likewise. * resolv/res_mkquery.c: Likewise. * resolv/res_query.c: Likewise. * libio/clearerr_u.c: It's not necessary to define __ protected function so don't do it. * libio/feof_u.c, libio/ferror_u.c, libio/fputc_u.c, libio/getc_u.c, libio/getchar_u.c, libio/iofflush_u.c: Likewise. * libio/fgetc.c: Avoid a warning by casting _IO_funlockfile for the cleanup registrar. * libio/fputc.c, libio/freopen.c, libio/fseek.c, libio/getc.c, libio/getchar.c, libio/iofclose.c, libio/iofflush.c, libio/iofgetpos.c, libio/iofgets.c, libio/iofputs.c, libio/iofread.c, libio/iofsetpos.c, libio/ioftell.c, libio/iofwrite.c, libio/iogetdelim.c, libio/iogets.c, libio/ioputs.c, libio/iosetbuffer.c, libio/iosetvbuf.c, libio/ioungetc.c, libio/putc.c, libio/putchar.c, libio/rewind.c: Likewise. * locale/programs/ld-ctype.c: Include <alloca.h>. * login/login_tty.c: Get login_tty prototype from <utmp.h>. * posix/sys/types.h: Change #defines to typedefs. This is looking forward to more comprehensive namespace cleanups for C++. * posix/unistd.h: Likewise for ssize_t. * pwd/getpw.c: Prototype and rename getpw -> __getpw and add a weak alias. * resolv/base64.c: Don't do `for (NULL; ...)' as it causes `statement with no effect' warnings. * resolv/inet_neta.c: Include <string.h> for strlen. * stdio-common/getline.c: Undef ssize_t before libio redefinition. * stdio-common/tstgetln.c: Same. De-ansidecl-ify. * stdio-common/vfprintf.c: Same for va_list. * stdio-common/vfscanf.c: Same. * stdio-common/reg-printf.c: Prototype the __ function. * stdio-common/scanf.c [USE_IN_LIBIO]: Include <libioP.h> for _IO_vscanf declaration. * string/tester.c: Tsk, tsk. Don't cast pointers to int, but to unsigned long for the health of 64-bit systems. * sunrpc/svc_udp.c: Define MAX only if we don't have it yet. Many system's <sys/param.h> pulls this in. * sysdeps/generic/dl-cache.c: Kill the bottom half of the patch doubled file. * sysdeps/generic/pty.c (forkpty): Get login_tty decl from <utmp.h> instead of defining it locally. * sysdeps/posix/sigvec.c: Prototype wrapper_handler and convert_mask. * sysdeps/stub/chflags.c: Prototype chflags. * sysdeps/stub/fchflags.c: Prototype fchflags. * sysdeps/stub/sstk.c: Prototype sstk. * sysdeps/unix/alpha/sysdep.S: Add strong alias from errno variable to __errno. Update __syscall_error to store to both the global and per-thread variables. * sysdeps/unix/sysv/linux/init-first.c: Change include of init-first.h from "" to <> as "" does not search the include path. Prototype _dl_start. Sun Sep 29 14:41:17 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Make it a pattern rule to get the right stem. Sat Sep 28 01:30:06 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile ($(objpfx)version-info.h): Fix typo in previous change. Sat Sep 28 00:44:38 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/posix/euidaccess.c (__set_errno): Fix typo. Sat Sep 28 00:40:38 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * malloc/free.c (_free_internal): Don't call free recursively, use the internal functions instead. Sat Sep 28 00:23:20 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/posix/tempname.c (__stdio_gen_tempname) [USE_IN_LIBIO && _IO_MTSAFE_IO]: Allocate and initialize the file lock. Fri Sep 27 23:58:17 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * catgets/gencat.c (main): Print version information on stdout, not stderr. * db/makedb.c: Likewise. * locale/programs/locale.c: Likewise. * locale/programs/localedef.c: Likewise. Mon Sep 30 00:14:26 1996 Ulrich Drepper <drepper@cygnus.com> Add implementation of netgroup. * inet/Makefile (distributes): Add netgroup.h. (routines): Add getnetgrent.c and getnetgrent_r.c. * inet/getnetgrent.c: New file. * inet/getnetgrent_r.c: New file. * inet/netgroup.h: New file. * netgroup.h: New file. * nsswitch.h: New file. * nss/Makefile (databases): Add getgrp. * nss/databases.def: Add netgroup. * nss/db-Makefile: Add rules for netgroup. * nss/netgrp-lookup.c: New file. * nss/nss.h: Add new status value NSS_STATUS_RETURN which will always return without a check of the transition table. * nss/nsswitch.h (struct service_user): Extend actions array to five elements. * nss/nsswitch.c (__nss_next): Allow NSS_STATUS_RETURN as legal status value. (nss_parse_service_list): Initialize action for NSS_STATUS_RETURN to NSS_ACTION_RETURN. * nss/nss_db/db-netgrp.c: New file. * nss/nss_files/files-netgrp.c: New file. * nss/nsswitch.conf: Add entry for netgroup. * resolv/netdb.h: Add prototypes for netgroup functions. * nss/nss_db/db-XXX.c: Use `enum nss_status' type when status value is used. Sun Sep 29 12:55:58 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/syscalls.list: Change funciton name for _llseek to _llseek (not llseek). Reported by Matthias Urlichs <smurf@smurf.noris.de>. Sun Sep 29 05:34:32 1996 Ulrich Drepper <drepper@cygnus.com> * inet/rcmd.c: Remove definition of MIN. Sat Sep 28 14:22:51 1996 Ulrich Drepper <drepper@cygnus.com> * dirent/readdir_r.c: Removed. We indeed need a real implementation. * sysdeps/unix/readdir_r.c: New file. * sysdeps/unix/readdir.c: Remove check for correct parameter values. Let them simply die. * manual/filesys.texi: Document readdir_r. * sysdeps/gnu/errlist.awk: Define _sys_errlist as `const char* const'. Proposed by Per Abrahamsen <abraham@dina.kvl.dk>.
1996-10-06 10:05:11 +08:00
For the i686 the code can be written better.
Thu May 30 11:24:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> * po/header.pot: Replace with exact boilerplate pinard dictates. * sysdeps/i386/strtok.S (Lillegal_argument): Remove this code to set errno and the check that jumped to it. * sysdeps/mach/hurd/Makefile (errnos.d): Use $(sed-remove-objpfx). Thu May 30 03:21:57 1996 Ulrich Drepper <drepper@cygnus.com> * FAQ: Document need of gperf program for developers. * elf/elf.h: Fix typos in comments. * libio/stdio.h [!__STRICT_ANSI__ || _POSIX_SOURCE]: Add prototypes for `ctermid' and `cuserid'. * locale/programs/locale.c: Switch to user selected locale before printing variables. * math/Makefile [$(long-double-fcts)==yes]: Define long-m-routines and long-c-routines. Only if the `long double' data type is available we need to compile the functions. (libm-routines): Add $(long-m-routines). (routines): Remove isinfl, isnanl. Use new file s_isinfl and s_isnanl instead if `long double' is available. * math/math.h: Include <mathcalls.h> again to define `long double' functions. * math/math_private.h: Define data types, prototypes and access macros for `long double'. * stdlib/stdlib.h: Add prototypes for `strtoll' and `strtoull'. [GCC2 && OPTIMIZE]: Define strto{,u}ll as inline function which calls __strto{,u}q_internal. * stdlib/strfmon.c: Replace PTR by `void *'. * stdlib/strtoq.c: Define strtoll as weak alias. * stdlib/strtouq.c: Define strtoull as weak alias. * string/tester.c: Correct `strsep' test. * sysdeps/generic/strsep.c: Make compatible with BSD version. Trailing characters of skip set are not skipped. In this case empty tokens are returned. * sysdeps/i386/isinfl.c, sysdeps/i386/isnanl.c, sysdeps/ieee754/isinf.c, sysdeps/ieee754/isinfl.c, sysdeps/ieee754/isnan.c, sysdeps/ieee754/isnanl.c: Removed. We now use the versions part of libm. * sysdeps/i386/strsep.S: Removed. Generic C version is of similar speed. * sysdeps/i386/strtok.S: Remove support for `strsep'. * sysdeps/libm-i387/e_acosl.S, sysdeps/libm-i387/s_ceill.S, sysdeps/libm-i387/s_copysignl.S, sysdeps/libm-i387/s_finitel.S, sysdeps/libm-i387/s_floorl.S, sysdeps/libm-i387/s_isinfl.c, sysdeps/libm-i387/s_isnanl.c, sysdeps/libm-i387/s_nextafterl.c, sysdeps/libm-i387/s_rintl.S, sysdeps/libm-i387/s_significandl.S: New i387 specific math functions implementing `long double' versions. * sysdeps/libm-ieee754/s_ceill.c, sysdeps/libm-ieee754/s_copysignl.c, sysdeps/libm-ieee754/s_fabsl.c, sysdeps/libm-ieee754/s_finitel.c, sysdeps/libm-ieee754/s_floorl.c, sysdeps/libm-ieee754/s_isinfl.c, sysdeps/libm-ieee754/s_isnanl.c, sysdeps/libm-ieee754/s_nextafterl.c, sysdeps/libm-ieee754/s_rintl.c, sysdeps/libm-ieee754/s_scalbnl.c, sysdeps/libm-ieee754/s_significandl.c: New generic `long double' versions of libm functions. * sysdeps/libm-i387/e_exp.S: Add a few comments to explain the Intel FPU nonsense. * sysdeps/libm-i387/s_ceil.S, sysdeps/libm-i387/s_ceilf.S, sysdeps/libm-i387/s_floor.S, sysdeps/libm-i387/s_floorf.S: Correct handling of local variables. The old version created a stack frame but stored the values outside. * sysdeps/libm-ieee754/s_isinf.c, sysdeps/libm-ieee754/s_isnan.c [!NO_LONG_DOUBLE]: Define alias with `long double' versions name. * login/pututline_r.c: Include sys/stat.h. Fix typos. according to currently used locale for category LC_CTYPE by inet_nsap_ntoa. Now in <arpa/inet.h>. _IO_dup2 to contain complete parameter list.
1996-05-31 00:12:42 +08:00
-- drepper@cygnus.com. */
fxam /* Is NaN or +-Inf? */
Tue May 28 04:38:10 1996 Ulrich Drepper <drepper@cygnus.com> * limits.h: Change MB_LEN_MAX to 6. A 31-bit ISO 10646 character in UTF-8 encoding has that many bytes. * locale/langinfo.h: New element _NL_CTYPE_MB_CUR_MAX. * locale/categories.def: Add description of field _NL_CTYPE_MB_CUR_MAX. * locale/Makefile (routines): Add mb_cur_max. * locale/mb_cur_max.c: New file. This function gets called when the macro MB_CUR_MAX is used. * locale/C-ctype.c: Initialize new mb_cur_max field. * locale/localeinfo.h: Change magic value because of incompatible change. * locale/programs/ld-ctype.c: Determine value of mb_cur_max according to current character set and write it out with the rest. * stdlib/stdlib.h (MB_CUR_MAX): Not constant anymore. Get value according to currently used locale for catefory LC_CTYPE by calling the function __ctype_get_mb_cur_max. Tue May 28 03:27:46 1996 Ulrich Drepper <drepper@cygnus.com> * FAQ: Fix some typos. Tell that for Linux the kernel header files are necessary. * PROJECTS: New file. List of open jobs for glibc. * Makefile (distribute): Add PROJECTS. * crypt/GNUmakefile (headers): New variable. Mention crypt.h. * crypt/crypt.h: Header for crypt functions. * elf/elf.h: Add some new constants from recent Cygnus ELF header files. * login/getutid_r.c: Test for correct type. Don't depend on ut_type and ut_id unless _HAVE_UT_TYPE and _HAVE_UT_ID resp. are defined. Make really compliant with specification. * login/getutline_r.c, login/pututline_r.c: Don't depend on ut_type and ut_id unless _HAVE_UT_TYPE and _HAVE_UT_ID resp. are defined. Make really compliant with specification. * login/setutent_r.c: Don't depend on ut_type and ut_id unless _HAVE_UT_TYPE and _HAVE_UT_ID resp. are defined. * login/login.c, login/logout.c, login/logwtmp.c: Complete rewrite. Now based on getut*/setut* functions. * stdlib/strtol.c: Undo changes of Wed May 22 01:48:54 1996. This prevented using this file in other GNU packages. * sysdeps/gnu/utmpbits.h: Define _HAVE_UT_TYPE, _HAVE_UT_ID, and _HAVE_UT_TV because struct utmp has these members. * sysdeps/libm-i387/e_exp.S: Correct exp(+-Inf) case. * utmp.h: New file. Wrapper around login/utmp.h. * elf/dl-error.c (struct catch): New type. (catch): New static variable, struct catch *. (catch_env, signalled_errstring, signalled_objname): Variables removed. (_dl_signal_error): If CATCH is non-null, set its errstring and objname members and jump to CATCH->env. If it is null, call _dl_sysdep_fatal with a standard message. * elf/rtld.c (dl_main): Explode `doit' function into dl_main's body. No longer use _dl_catch_error.
1996-05-29 12:48:04 +08:00
fstsw %ax
update from main archive 970101 Wed Jan 1 15:15:00 1997 Ulrich Drepper <drepper@cygnus.com> * libio/Makefile (routines): Add fcloseall. * libio/fcloseall.c: New file. * libio/stdio.h [__USE_GNU]: Add prototype for fcloseall. * libio/iofclose.c: Don't close all streams when argument is NULL. * stdio/Makefile (routines): Add fcloseall. * stdio/fcloseall.c: New file. * stdio/stdio.h [__USE_GNU]: Add prototype for fcloseall. * stdio/fclose.c: Don't close all streams when argument is NULL. * manual/stdio.texi: Document fcloseall. * sysdeps/generic/abort.c: Call __fcloseall instead of fclose with NULL argument. * socket/sys/un.h (SUN_LEN): Add cast. * sunrpc/auth_unix.c (authunix_create): Change parameter types of uid, gid, and aup_gids to uid_t and gid_t respectively. (authunix_create_default): Likewise. (authunix_refresh): Correct cast for aup_gids assignment. * sunrpc/rpc/auth.h (authunix_create): Correct types in declaration. * sunrpc/rpc/auth_unix.h (struct authunix_parms): Correct field types to uid_t and gid_t respectively. (struct short_hand_verf): Likewise. Reported by Andreas Schwab. * sysdeps/ieee754/Makefile: New file. Make sure ieee754.h gets installed. * sysdeps/ieee754/ieee754.h: Protect against multiple inclusion and use in C++ programs. * sysdeps/libm-i387/e_pow.S: New file. Optimized ix87 assembler version of pow() function. * sysdeps/libm-i387/e_powf.S: New file. Float version. * sysdeps/libm-i387/e_powl.S: New file. Long double version. * sysdeps/libm-i387/s_expm1.S: New file. Optimized ix87 assembler version of expm1() function. * sysdeps/libm-i387/s_expm1f.S: New file. Float version. * sysdeps/libm-i387/s_expm1l.S: New file. Long double version. * sysdeps/libm-i387/e_exp.S: Optimize handling of +-Inf. Better handling of computation stack from current NetBSD sources. * sysdeps/libm-i387/e_expf.S: Likewise. * sysdeps/libm-i387/e_expl.S: Likewise. * sysdeps/libm-i387/e_log.S: Use fstp instead of fincstp. * sysdeps/libm-i387/e_logf.S: Likewise. * sysdeps/libm-i387/e_logl.S: Likewise. * sysdeps/libm-i387/e_log10.S: Likewise. * sysdeps/libm-i387/e_log10f.S: Likewise. * sysdeps/libm-i387/e_log10l.S: Likewise. * sysdeps/libm-i387/s_asinh.S: Likewise. * sysdeps/libm-i387/s_asinhf.S: Likewise. * sysdeps/libm-i387/s_asinhl.S: Likewise. * sysdeps/libm-i387/s_significandl.S: Likewise. * sysdeps/libm-i387/s_ceil.S: Don't create stack frame. Modify stack pointer directly. Use 32 bit instead of 16 bit operations. * sysdeps/libm-i387/s_ceilf.S: Likewise. * sysdeps/libm-i387/s_ceill.S: Likewise. * sysdeps/libm-i387/s_floor.S: Likewise. * sysdeps/libm-i387/s_floorf.S: Likewise. * sysdeps/libm-i387/s_floorl.S: Likewise. * sysdeps/libm-ieee754/e_coshf.c (huge): Don't declare volatile. * sysdeps/libm-ieee754/e_expf.c: Likewise. * sysdeps/libm-ieee754/e_powf.c: Likewise. From current NetBSD sources. * sysdeps/libm-ieee754/e_hypot.c (__ieee754_hypot): Don't initialize `a' and `b' in definition. * sysdeps/libm-ieee754/e_hypotf.c: Likewise. * sysdeps/libm-ieee754/e_hypotl.c: New file. Long double implementation. * sysdeps/libm-ieee754/e_sinhl.c: New file. Long double implementation. * sysdeps/stub/e_hypotl.c: Removed. We have a real version now. * sysdeps/stub/e_sinhl.c: Removed. * sysdeps/posix/sigpause.c (__sigpause): Use sigdelset instead of sigaddset. Reported by Andreas Schwab. (__default_sigpause): New function. Call __sigpause as BSD version. Make this the default function by providing alias sigpause. * sysdeps/stub/sigpause.c (__default_sigpause): New funciton. Simply fail. Provide alias sigpause. Wed Jan 1 12:34:54 1997 Ulrich Drepper <drepper@cygnus.com> * po/es.po: Update for glibc-1.98. * po/fr.po: Likewise. * po/sv.po: New file. Swedish translation. Wed Jan 1 12:18:07 1997 MacGyver <macgyver@tos.net> * values.h: Fix typos: use SHRT_MAX but SHORT_MAX and SHRT_MIN but SHORT_MIN. Tue Dec 24 23:10:21 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile: Replace `stubs.h' by `gnu/stubs.h'. * features.h: Include <gnu/stubs.h> instead of <stubs.h>. Tue Dec 24 22:16:55 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile (subdirs): Move `elf' last so that librtld.so isn't relinked in the `make others' pass if an add-on adds something to libc. Mon Dec 23 21:23:16 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/abort-instr.h: New File. Mon Dec 23 21:16:38 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/Makefile ($(subdir)=elf): Define CFLAGS-rtld.c to prevent warning. Mon Dec 23 21:14:22 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * resolv/Makefile (subdirs-dirs): Define. Mon Dec 23 20:56:49 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/gnu/utmpbits.h (struct utmp): Fix padding. Mon Dec 30 11:05:11 1996 Ulrich Drepper <drepper@cygnus.com> Update from ADO tzcode1996o. * time/difftime.c: De-ANSI-declfy. Simplify computation of hibit according to ADO version. * time/zic.c: Correct typo is message. Update from ADO tzdata1996n. * time/asia: Updated. * time/australasia: Likewise. * time/europe: Likewise. * time/northamerica: Likewise. * time/southamerica: Likewise.
1997-01-01 23:28:18 +08:00
movb $0x45, %dh
andb %ah, %dh
cmpb $0x05, %dh
je 1f /* Is +-Inf, jump. */
fldl2e
fmulp /* x * log2(e) */
Update. 1997-03-16 18:43 Ulrich Drepper <drepper@cygnus.com> * manual/filesys.texi: Add documentation for scandir and alphasort. * math/math.c (fpclassify): Correct stupid typos. * math/libm-test.c: New file. libm test suite by Andreas Jaeger. * nss/nss_files/files-hosts.c: Add gethostbyname2 imlementation. * posix/Makefile (routines): Add bsd-getpgrp. * posix/bsd-getpgrp.c: New file. * posix/unistd.h [__FAVOR_BSD]: Define macro getpgrp which maps calls to __bsd_getpgrp. * sysdeps/generic/getpgrp.c: De-ANSI-declfy. * sysdeps/i386/huge_val.h: New file. ix87 specific infinity values. * sysdeps/m68k/huge_val.h: New file. m68k specific infinity values. * sysdeps/generic/huge_val.h: Remove definition of long double definition. Make it the same as the double definition. * sysdeps/libm-i387/e_acos.S: Fix bug in FPU stack handling. * sysdeps/libm-i387/e_acosf.S: Likewise. * sysdeps/libm-i387/e_acosl.S: Likewise. * sysdeps/libm-i387/e_asin.S: Likewise. * sysdeps/libm-i387/e_asinf.S: Likewise. * sysdeps/libm-i387/e_asinl.S: Likewise. * sysdeps/libm-i387/e_exp.S: Likewise. * sysdeps/libm-i387/e_expf.S: Likewise. * sysdeps/libm-i387/e_expl.S: Likewise. * sysdeps/libm-i387/e_scalbn.S: Likewise. * sysdeps/libm-i387/e_scalbnf.S: Likewise. * sysdeps/libm-i387/e_scalbnl.S: Likewise. * sysdeps/libm-i387/e_log.S: Optimize branch code. * sysdeps/libm-i387/e_logf.S: Likewise. * sysdeps/libm-i387/e_logl.S: Likewise. * sysdeps/libm-i387/e_log10.S: Likewise. * sysdeps/libm-i387/e_log10f.S: Likewise. * sysdeps/libm-i387/e_log10l.S: Likewise. * sysdeps/libm-i387/e_pow.S: Major rewrite to handle special cases. * sysdeps/libm-i387/e_powf.S: Likewise. * sysdeps/libm-i387/e_powl.S: Likewise. * sysdeps/libm-i387/e_expm1.S: Change return value for -inf argument to -1.0. * sysdeps/libm-i387/e_expm1f.S: Likewise. * sysdeps/libm-i387/e_expm1l.S: Likewise. * sysdeps/libm-i387/e_isinfl.c: Return -1 for -inf. * sysdeps/libm-i387/e_logbl.S: Correct return value. Discard first stack element after fxtract. * sysdeps/libm-ieee754/e_atan2l.c: New file. `long double' implementation for atan2 function. * sysdeps/libm-ieee754/k_standard.c: Return NAN for libm not in _SVID_ mode when acos, asin, atan2, log, log10 is called with argument out of range. Add new error case for pow(+0,neg). * sysdeps/libm-ieee754/s_fpclassifyf.c: Correct recognition of NaN and +-inf. * sysdeps/libm-ieee754/s_fpclassifyl.c: Mask out explicit leading digit in stupid 80 bit formats. * sysdeps/libm-ieee754/s_isinf.c: Rewrite to return -1 for -inf. * sysdeps/libm-ieee754/s_isinff.c: Likewise. * sysdeps/libm-ieee754/s_isinfl.c: Likewise. * sysdeps/libm-ieee754/s_scalbnl.c (huge, tiny): Adapt values for long double type. * sysdeps/libm-ieee754/w_atan2.c: Do not raise exception expect when in SVID mode. * sysdeps/libm-ieee754/w_atan2f.c: Likewise. * sysdeps/libm-ieee754/w_atan2l.c: Likewise. * sysdeps/libm-ieee754/w_pow.c: Distinguish error cases for x is +0 or -0. * sysdeps/posix/isfdtype.c: Add cast to prevent warning. * sysdeps/stub/fcntlbits.h: Update copyright. * sysdeps/unix/bsd/fcntlbits.h: Likewise. * sysdeps/unix/bsd/bsd4.4/fcntlbits.h: Likewise. * sysdeps/unix/bsd/sun/sunos4/fcntlbits.h: Likewise. * sysdeps/unix/bsd/ultrix4/fcntlbits.h: Likewise. * sysdeps/unix/common/fcntlbits.h: Likewise. * sysdeps/unix/sysv/fcntlbits.h: Likewise. Define O_FSYNC as alias of O_SYNC. Add BSD compatibility macros FAPPEND, FFSYNC, FNONBLOCK, and FNDELAY. * sysdeps/unix/sysv/irix4/fcntlbits.h: Likewise. * sysdeps/unix/readdir_r.c: Don't copy whole `struct dirent' record, only reclen bytes. * sysdeps/unix/sysv/linux/fcntlbits.h [__USE_GNU]: Add O_READ, O_WRITE and O_NORW. * sysdeps/unix/sysv/linux/alpha/fcntlbits.h: Likewise. * sysdeps/unix/sysv/linux/init-first.h: Add copyright. * sysdeps/unix/sysv/linux/fxstat.c: New file. Rewrite kernel-level struct stat to user-level form. * sysdeps/unix/sysv/linux/lxstat: New file. * sysdeps/unix/sysv/linux/xstat: New file. * sysdeps/unix/sysv/linux/kernel_stat.h: Define struct stat used in kernel. * sysdeps/unix/sysv/linux/statbuf.h (struct stat): Change definition to use prescribed types for elements. (_STAT_VER): Change to value 3. * sysdeps/unix/sysv/linux/alph/statbuf.h: Likewise. * sysdeps/unix/sysv/linux/Dist: Add kernel_stat.h. * sysdeps/unix/sysv/linux/alpha/Dist: Likewise. * time/Makefile: Correct dependencies for test-tz. 1997-03-16 14:59 Philip Blundell <phil@london.uk.eu.org> * resolv/netdb.h: Add prototypes for gai_strerror and getnameinfo (needed for IPv6 basic sockets API). 1997-03-16 15:02 a sun <asun@zoology.washington.edu> * sysdeps/unix/sysv/linux/net/if_ppp.h: Don't use incompatible kernel header. * sysdeps/unix/sysv/linux/net/ppp_defs.h: Likewise. 1997-03-14 17:15 Ulrich Drepper <drepper@cygnus.com> * db/hash/hash_bigkey.c (__big_delete): Don't call __free_ovflpage without testing for last_bfp to be NULL. Reported by fabsoft@fabserver1.zarm.uni-bremen.de. 1997-03-13 11:42 Jim Meyering <meyering@asic.sc.ti.com> * time/mktime.c (TIME_T_MIN): Work around a bug in Cray C 5.0.3.0. 1997-03-14 04:00 Kurt Garloff <garloff@kg1.ping.de> * sysdeps/unix/sysv/linux/fcntlbits.h (O_FSYNC): Make alias for O_SYNC. (FASYNC): Move to __USE_BSD section. Create new macro O_ASYNC. 1997-03-14 02:50 Ulrich Drepper <drepper@cygnus.com> * nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyname2_r): New functions. Compare result for correct address type. (_nss_nis_gethostbyname_r): Use _nss_nis_gethostbyname2_r. Reported by Mirko Streckenbach <mirko@marian.hil.de>. 1997-02-17 01:40 Zlatko Calusic <zcalusic@srce.hr> * time/strptime.c (recursive): Return rp to caller. (strptime_internal): First check for long names, then abbreviated (month & weekday). 1997-03-10 19:44 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makeconfig: Remove useless definitions of ASFLAGS-%. * config.make.in (ASFLAGS-.so): Remove. * configure.in: Don't substitute ASFLAGS_SO. * sysdeps/sparc/configure.in: Remove file. * sysdeps/sparc/Makefile (ASFLAGS-.so): Define. 1997-03-11 17:00 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * time/strptime.c (strptime_internal) [case 'Y']: Always subtract 1900 from year, regardless of century. 1997-03-12 05:43 Ulrich Drepper <drepper@cygnus.com> * stdlib/strtod.c (_tens_in_limb) [BITS_PER_MP_LIMB > 32]: Make all numbers unsigned to make buggy gccs happy. Patch by Bryan W. Headley <bheadley@interaccess.com>. * sysdeps/unix/sysv/linux/netinet/ip.h: Add backward-compatibility definitions. Patch by a sun <asun@zoology.washington.edu>. Pretty print header. * Makerules (build-shlib): Also create symlink if library is versioned. based on a patch by H.J. Lu <hjl@gnu.ai.mit.edu>. Remove special rule to libc.so symlink. 1997-03-11 20:16 Andreas Jaeger <aj@arthur.pfalz.de> * manual/math.texi (Domain and Range Errors): Change descriptions according to recent changes for ISO C 9X. 1997-03-11 22:39 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/k_standard.c (__kernel_standard): Correct return values for acos, asin, and atan2. Reported by Andreas Jaeger <aj@arthur.pfalz.de>. 1997-03-10 18:16 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * ypclnt.c (__yp_bind): Fix possible buffer overflow. 1997-03-10 18:06 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> * dirent/alphasort.c (alphasort): Interpret arguments as pointers to pointers to directory entries so that alphasort really can be used as argument for scandir. 1997-03-09 23:33 Andreas Jaeger <aj@arthur.pfalz.de> * string/strdup.c: Declare memcpy if !(_LIBC || STDC_HEADERS) instead of strcpy. 1997-03-10 03:34 Ulrich Drepper <drepper@cygnus.com> * catgets/catgets.c (catopen): Always add NLSPATH to search path for catalogs, not only if the envvar NLSPATH is not available. Reported by Andries.Brouwer@cwi.nl. 1997-03-10 02:46 Ulrich Drepper <drepper@cygnus.com> * Makeconfig (localtime-file): Don't define using installation directory. (inst_localtime-file): New variable. * time/Makefile (installed-localtime-file): Use inst_localtime-file. Reported by Edward Seidl <seidl@janed.com>. 1997-03-10 02:31 H.J. Lu <hjl@gnu.ai.mit.edu> * time/Makefile: Add source files to dependencies for test data. 1997-03-09 22:53 Thorsten Kukuk <kukuk@weber.uni-paderborn.de> * nis/nss_nis/nis-ethers.c: Don't ignore return value of yp_all. * nis/nss_nis/nis-proto.c: Likewise. * nis/nss_nis/nis-rpc.c: Likewise. * nis/nss_nis/nis-service.c: Likewise. 1997-03-08 14:37 Miguel de Icaza <miguel@nuclecu.unam.mx> * sysdeps/sparc/dl-machine.h (elf_machine_rela): Upgrade to versioning; Added missing R_SPARC_WDISP30 handling. (RTLD_START): Implement it. * sysdeps/unix/sysv/linux/sparc/brk.c: Fix. * sysdeps/unix/sysv/linux/sparc/start.c: Startup code for Linux/SPARC. 1997-03-02 18:06 Miguel de Icaza <miguel@nuclecu.unam.mx> * sysdeps/sparc/dl-machine.h (RTLD_START): Make arg as expected by the dynamic linker instead of having a new conditional define. Thanks to Richard Henderson for pointing this out. * elf/rtld.c: Remove usage of ELF_ADJUST_ARG. 1997-03-20 20:44 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * sysdeps/mach/hurd/euidaccess.c: Define as __euidaccess and make euidaccess weak alias. 1997-03-07 10:30 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * stdio-common/printf_fphex.c (MIN): New macro. * sysdeps/generic/netinet/in.h: Include <sys/types.h>. * sysdeps/generic/sys/mman.h (msync): Mention third arg. * sysdeps/generic/netinet/in.h: Add definitions for IPv6 basic API. (See change by Philip Blundell on Feb 16, 1997.) 1997-03-05 10:40 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * hurd/hurd.h (vpprintf): Include <stdarg.h>. New declaration. * hurd/set-host.c (_hurd_set_host_config): Cast second arg to __file_name_split. * mach/mach_error.c (mach_error_string_int): Give full prototype. * mach/errstring.c (mach_error_string_int): Likewise. * mach/error_compat.c (__mach_error_map_compat): Likewise. * hurd/vpprintf.c (pwrite, vpprintf): Likewise. * stdio/vasprintf.c (vasprintf): Likewise. * mach/mach/mach_traps.h: Include <mach/kern_return.h>. * mach/spin-solid.c: Include <mach/mach_traps.h>. * mach/spin-solid.c (__spin_lock_solid): Provide arg to swtch_pri. * mach/mach_init.c: Include <mach/mig_support.h>. * mach/mach_error.h (mach_error_string, mach_error, mach_error_type): Always provide prototypes. * mach/mach/error.h (mach_error_fn_t): Comment out declaration; it appears to be entirely unused dead code. * stdio/stdio.h (freopen): Fix spelling error. 1997-03-02 13:38 Miles Bader <miles@gnu.ai.mit.edu> * string/argz.h (__need_error_t): New macro, before including <errno.h> [!__const] (__const): New macro. [!__error_t_defined] (error_t): New typedef. * sysdeps/generic/socketbits.h: Add PF_FILE as synonym for PF_LOCAL * sysdeps/unix/sysv/linux/socketbits.h: Likewise.
1997-03-17 04:28:07 +08:00
fld %st
frndint /* int(x * log2(e)) */
update from main archive 970118 Sun Jan 19 04:38:20 1997 Ulrich Drepper <drepper@cygnus.com> * config.make.in (have-ksh, KSH): New variables. Will be filled in by configure. * configure.in: Add test for ksh like shell (prefer bash). * time/Makefile (tests): Depend on install-test-data. (distribute): Add simplebackw. (generated-dirs): New variable. [$(have-ksh)==yes] (install-others): Add iso3166.tab and zone.tab. (install-bin): Add tzselect. (install-test-data): Install the zoneinfo files which are needed for the test case in the build directory. (test-tz-ENV): New variable. Call test-tz program using data in build directory. * time/simpleback: New file. * time/test-tz.c: Pretty print. * time/tzfile.c: Use value of environment variable TZDIR as directory to look for zone info files. don't let search for DST data destroy already found values. * time/tzselect.ksh: Use @KSH@ and @TZDIR@ to be substituted when installing. * time/tzset.c (__tzset_internal): Avoid freeing string twice. Set DST zone name to normal zone name if no information is provided. * time/mktime.c (mktime): Call __tzset_internal to use current value of TZ. * Makerules (common-clean): Remove $(generated-dirs) inclusing content. * glibcbug.in: Fix several bugs. Reported by several people. * elf/Makefile: Correct dependecies for $(objpfx)ldd. * inet/netinet/ip.h: Define IPTOS_LOWCOST and IPTOS_MINCOST. * locale/C-time.c: Update copyright. * locale/localeinfo.h: Likewise. * sysdeps/unix/bsd/bsd4.4/direntry.h: Likewise. * locale/programs/ld-time.c (time_finish): Correct message string. * locale/programs/linereader.c (lr_token): Use correctly `number' not `digit' in message string. * stdlib/strtol.c [UNSIGNED]: Don't punt immediately when `-' is seen. Instead return ULONG_MAX and set ERANGE. * stdlib/tst-strtol.c: Correct test to reflect above change. Sun Jan 19 03:22:30 1997 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/sys/mtio.h: Don't use <linux/mtio.h>. We must not use <linux/posix_types.h>. * sysdeps/unix/sysv/linux/sys/ipc_buf.h: Don't use __kernel_* types since we must not use <linux/posix_types.h>. * sysdeps/unix/sysv/linux/sys/procfs.h: Likewise. * sysdeps/unix/sysv/linux/alpha/sys/ipc_buf.h: New file. Similar to sysdeps/unix/sysv/linux/sys/ipc_buf.h, but use alpha relavent types. * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: New file. Similar to sysdeps/unix/sysv/linux/sys/procfs.h, but use alpha relavent types. Sun Jan 19 01:48:20 1997 H.J. Lu <hjl@gnu.ai.mit.edu> * sysdeps/libm-i387/e_exp.S: Correct computation of fractional part. * sysdeps/libm-i387/e_expf.S: Likewise. * sysdeps/libm-i387/e_expl.S: Likewise. * sysdeps/libm-i387/s_expm1.S: Correct computation of fractional part. Take care of additional value left on stack by fscale. * sysdeps/libm-i387/s_expm1f.S: Likewise. * sysdeps/libm-i387/s_expm1l.S: Likewise. Fri Jan 17 17:45:32 1997 Ulrich Drepper <drepper@cygnus.com> * posix/getopt.c: Change all direct usages of `gettext' to `_'. * sysdeps/generic/sysd-stdio.c (__stdio_reopen): Add missing parameter. Reported by Harmanjit Singh <harman@netearth.iitd.ernet.in>. Thu Jan 16 23:39:25 1997 Ulrich Drepper <drepper@cygnus.com> * stdio-common/Makefile (tests): Add scanf11. * stdio-common/scanf11.c: New file. * stdio-common/vfscanf.c (__vfscanf): Increment `done' when %n was processed and value is not suppressed. * stdio-common/bug10.c: Correct test to expect %n increment the return value of scanf. * stdio-common/scanf1.c: Likewise. * stdio-common/scanf3.c: Likewise. * stdio-common/scanf10.c: Likewise. * stdio-common/tstdiomisc.c: Likewise. * time/strptime.c: Add lots of conditional compiling to enable use outside glibc. When used in glibc, make sure C locale format strings will always be recognized. Sat Jan 11 18:53:47 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysv/linux/sys/sysmacros.h (major, minor, makedev): Fix definitions so that they work with __kernel_dev_t. Sat Jan 11 14:24:10 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysv/linux/kernel_sigaction.h, sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h, sysdeps/unix/sysv/linux/sigaction.c: New files. * sysdeps/unix/sysv/linux/syscalls.list: Add s_sigaction. Sun Jan 12 15:22:33 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * libc-symbols.h (link_warning): Make sure that the .gnu.warning section is not allocated. Update and reformat copyright. Sun Jan 12 12:19:28 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/Makefile ($(objpfx)ldd): Fix depedency list. Sat Jan 11 15:11:26 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/Makefile ($(common-objpfx)sysd-syscalls): Fix command so that it works in subdirectories. Wed Jan 8 22:07:58 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysv/linux/i386/syscalls.list: Add s_getgroups and s_setgroups. * sysdeps/unix/sysv/linux/m68k/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/i386/getgroups.c, sysdeps/unix/sysv/linux/i386/setgroups.c, sysdeps/unix/sysv/linux/m68k/getgroups.c, sysdeps/unix/sysv/linux/m68k/setgroups.c: New files. Wed Jan 8 19:42:59 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile (config.status): Delete bogus rule. ($(objpfx)glibcbug): Renamed from plain `glibcbug', depend on config.status in build directory, fix command to change to build directory. * Makeconfig ($(common-objpfx)config.status): Depend on version.h. Thu Jan 9 08:47:54 1997 Andreas Jaeger <aj@arthur.pfalz.de> * glibcbug.in (while): We test for four and not five conditions, set MAIL_AGENT instead of RMAIL, filter spaces and tabs. Thu Jan 16 22:00:27 1997 Ulrich Drepper <drepper@cygnus.com> * misc/syslog.c: Don't define cancel_handler if _LIBC_REENTRANT is not defined. Reported by Andreas Jaeger. Thu Jan 9 08:47:54 1997 Andreas Jaeger <aj@arthur.pfalz.de> * new-malloc/malloc.c (__MALLOC_P): define call to pthread initializer only if NO_THREADS is not defined. Wed Jan 8 21:28:58 1997 Andreas Jaeger <aj@arthur.pfalz.de> * resolv/nss_dns/dns-host.c: Clean-up: delete unnecessary includes and variables. Thu Jan 16 21:50:27 1997 Ulrich Drepper <drepper@cygnus.com> * inet/arpa/inet.h: Include <netinet/in.h> to get struct in_addr defined. Tue Jan 7 17:29:59 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makerules (LDLIBS-c.so): New variable. Tue Jan 7 19:22:00 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile ($(includedir)/gnu/lib-names.h): Define the library names as strings, not as sequence of tokens that may fall apart. Fri Jan 10 14:08:41 1997 Roland McGrath <roland@fmh.frob.com> * time/tzfile.c (__tzfile_read): Check for bogus type and zone name indices in data file and punt, so a bogus file can't crash us. Thu Jan 16 20:29:15 1997 Ulrich Drepper <drepper@cygnus.com> * values.h [__USE_MISC]: Define BITSPERBYTE. Fri Jan 17 14:16:28 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * stdio/vdprintf.c: Moved file to ... * sysdeps/posix/vdprintf.c: Here. De-ansideclificate. * sysdeps/stub/vdprintf.c: New file. * sysdeps/mach/hurd/vdprintf.c: New file. Thu Jan 9 15:59:35 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * sysdeps/mach/hurd/posix_opt.h: New file. * sysdeps/mach/hurd/sigwait.c (sigwait): Don't affect signal mask. * sysdeps/unix/bsd/tcsendbrk.c (tcsendbreak): Finish deansideclification. * sysdeps/mach/libc-lock.h: Add kludges to pretend to implement recursive locks. Tue Jan 7 09:48:15 1997 Andreas Jaeger <aj@arthur.pfalz.de> * signal/sigempty.c (sigemptyset): Correct typo: Empty set should have all bits zero.
1997-01-19 12:54:28 +08:00
fsubr %st,%st(1) /* fract(x * log2(e)) */
update from main archive 970101 Wed Jan 1 15:15:00 1997 Ulrich Drepper <drepper@cygnus.com> * libio/Makefile (routines): Add fcloseall. * libio/fcloseall.c: New file. * libio/stdio.h [__USE_GNU]: Add prototype for fcloseall. * libio/iofclose.c: Don't close all streams when argument is NULL. * stdio/Makefile (routines): Add fcloseall. * stdio/fcloseall.c: New file. * stdio/stdio.h [__USE_GNU]: Add prototype for fcloseall. * stdio/fclose.c: Don't close all streams when argument is NULL. * manual/stdio.texi: Document fcloseall. * sysdeps/generic/abort.c: Call __fcloseall instead of fclose with NULL argument. * socket/sys/un.h (SUN_LEN): Add cast. * sunrpc/auth_unix.c (authunix_create): Change parameter types of uid, gid, and aup_gids to uid_t and gid_t respectively. (authunix_create_default): Likewise. (authunix_refresh): Correct cast for aup_gids assignment. * sunrpc/rpc/auth.h (authunix_create): Correct types in declaration. * sunrpc/rpc/auth_unix.h (struct authunix_parms): Correct field types to uid_t and gid_t respectively. (struct short_hand_verf): Likewise. Reported by Andreas Schwab. * sysdeps/ieee754/Makefile: New file. Make sure ieee754.h gets installed. * sysdeps/ieee754/ieee754.h: Protect against multiple inclusion and use in C++ programs. * sysdeps/libm-i387/e_pow.S: New file. Optimized ix87 assembler version of pow() function. * sysdeps/libm-i387/e_powf.S: New file. Float version. * sysdeps/libm-i387/e_powl.S: New file. Long double version. * sysdeps/libm-i387/s_expm1.S: New file. Optimized ix87 assembler version of expm1() function. * sysdeps/libm-i387/s_expm1f.S: New file. Float version. * sysdeps/libm-i387/s_expm1l.S: New file. Long double version. * sysdeps/libm-i387/e_exp.S: Optimize handling of +-Inf. Better handling of computation stack from current NetBSD sources. * sysdeps/libm-i387/e_expf.S: Likewise. * sysdeps/libm-i387/e_expl.S: Likewise. * sysdeps/libm-i387/e_log.S: Use fstp instead of fincstp. * sysdeps/libm-i387/e_logf.S: Likewise. * sysdeps/libm-i387/e_logl.S: Likewise. * sysdeps/libm-i387/e_log10.S: Likewise. * sysdeps/libm-i387/e_log10f.S: Likewise. * sysdeps/libm-i387/e_log10l.S: Likewise. * sysdeps/libm-i387/s_asinh.S: Likewise. * sysdeps/libm-i387/s_asinhf.S: Likewise. * sysdeps/libm-i387/s_asinhl.S: Likewise. * sysdeps/libm-i387/s_significandl.S: Likewise. * sysdeps/libm-i387/s_ceil.S: Don't create stack frame. Modify stack pointer directly. Use 32 bit instead of 16 bit operations. * sysdeps/libm-i387/s_ceilf.S: Likewise. * sysdeps/libm-i387/s_ceill.S: Likewise. * sysdeps/libm-i387/s_floor.S: Likewise. * sysdeps/libm-i387/s_floorf.S: Likewise. * sysdeps/libm-i387/s_floorl.S: Likewise. * sysdeps/libm-ieee754/e_coshf.c (huge): Don't declare volatile. * sysdeps/libm-ieee754/e_expf.c: Likewise. * sysdeps/libm-ieee754/e_powf.c: Likewise. From current NetBSD sources. * sysdeps/libm-ieee754/e_hypot.c (__ieee754_hypot): Don't initialize `a' and `b' in definition. * sysdeps/libm-ieee754/e_hypotf.c: Likewise. * sysdeps/libm-ieee754/e_hypotl.c: New file. Long double implementation. * sysdeps/libm-ieee754/e_sinhl.c: New file. Long double implementation. * sysdeps/stub/e_hypotl.c: Removed. We have a real version now. * sysdeps/stub/e_sinhl.c: Removed. * sysdeps/posix/sigpause.c (__sigpause): Use sigdelset instead of sigaddset. Reported by Andreas Schwab. (__default_sigpause): New function. Call __sigpause as BSD version. Make this the default function by providing alias sigpause. * sysdeps/stub/sigpause.c (__default_sigpause): New funciton. Simply fail. Provide alias sigpause. Wed Jan 1 12:34:54 1997 Ulrich Drepper <drepper@cygnus.com> * po/es.po: Update for glibc-1.98. * po/fr.po: Likewise. * po/sv.po: New file. Swedish translation. Wed Jan 1 12:18:07 1997 MacGyver <macgyver@tos.net> * values.h: Fix typos: use SHRT_MAX but SHORT_MAX and SHRT_MIN but SHORT_MIN. Tue Dec 24 23:10:21 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile: Replace `stubs.h' by `gnu/stubs.h'. * features.h: Include <gnu/stubs.h> instead of <stubs.h>. Tue Dec 24 22:16:55 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile (subdirs): Move `elf' last so that librtld.so isn't relinked in the `make others' pass if an add-on adds something to libc. Mon Dec 23 21:23:16 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/abort-instr.h: New File. Mon Dec 23 21:16:38 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/Makefile ($(subdir)=elf): Define CFLAGS-rtld.c to prevent warning. Mon Dec 23 21:14:22 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * resolv/Makefile (subdirs-dirs): Define. Mon Dec 23 20:56:49 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/gnu/utmpbits.h (struct utmp): Fix padding. Mon Dec 30 11:05:11 1996 Ulrich Drepper <drepper@cygnus.com> Update from ADO tzcode1996o. * time/difftime.c: De-ANSI-declfy. Simplify computation of hibit according to ADO version. * time/zic.c: Correct typo is message. Update from ADO tzdata1996n. * time/asia: Updated. * time/australasia: Likewise. * time/europe: Likewise. * time/northamerica: Likewise. * time/southamerica: Likewise.
1997-01-01 23:28:18 +08:00
fxch
Tue May 28 04:38:10 1996 Ulrich Drepper <drepper@cygnus.com> * limits.h: Change MB_LEN_MAX to 6. A 31-bit ISO 10646 character in UTF-8 encoding has that many bytes. * locale/langinfo.h: New element _NL_CTYPE_MB_CUR_MAX. * locale/categories.def: Add description of field _NL_CTYPE_MB_CUR_MAX. * locale/Makefile (routines): Add mb_cur_max. * locale/mb_cur_max.c: New file. This function gets called when the macro MB_CUR_MAX is used. * locale/C-ctype.c: Initialize new mb_cur_max field. * locale/localeinfo.h: Change magic value because of incompatible change. * locale/programs/ld-ctype.c: Determine value of mb_cur_max according to current character set and write it out with the rest. * stdlib/stdlib.h (MB_CUR_MAX): Not constant anymore. Get value according to currently used locale for catefory LC_CTYPE by calling the function __ctype_get_mb_cur_max. Tue May 28 03:27:46 1996 Ulrich Drepper <drepper@cygnus.com> * FAQ: Fix some typos. Tell that for Linux the kernel header files are necessary. * PROJECTS: New file. List of open jobs for glibc. * Makefile (distribute): Add PROJECTS. * crypt/GNUmakefile (headers): New variable. Mention crypt.h. * crypt/crypt.h: Header for crypt functions. * elf/elf.h: Add some new constants from recent Cygnus ELF header files. * login/getutid_r.c: Test for correct type. Don't depend on ut_type and ut_id unless _HAVE_UT_TYPE and _HAVE_UT_ID resp. are defined. Make really compliant with specification. * login/getutline_r.c, login/pututline_r.c: Don't depend on ut_type and ut_id unless _HAVE_UT_TYPE and _HAVE_UT_ID resp. are defined. Make really compliant with specification. * login/setutent_r.c: Don't depend on ut_type and ut_id unless _HAVE_UT_TYPE and _HAVE_UT_ID resp. are defined. * login/login.c, login/logout.c, login/logwtmp.c: Complete rewrite. Now based on getut*/setut* functions. * stdlib/strtol.c: Undo changes of Wed May 22 01:48:54 1996. This prevented using this file in other GNU packages. * sysdeps/gnu/utmpbits.h: Define _HAVE_UT_TYPE, _HAVE_UT_ID, and _HAVE_UT_TV because struct utmp has these members. * sysdeps/libm-i387/e_exp.S: Correct exp(+-Inf) case. * utmp.h: New file. Wrapper around login/utmp.h. * elf/dl-error.c (struct catch): New type. (catch): New static variable, struct catch *. (catch_env, signalled_errstring, signalled_objname): Variables removed. (_dl_signal_error): If CATCH is non-null, set its errstring and objname members and jump to CATCH->env. If it is null, call _dl_sysdep_fatal with a standard message. * elf/rtld.c (dl_main): Explode `doit' function into dl_main's body. No longer use _dl_catch_error.
1996-05-29 12:48:04 +08:00
f2xm1 /* 2^(fract(x * log2(e))) - 1 */
fld1
faddp /* 2^(fract(x * log2(e))) */
fscale /* e^x */
Update from main archive 961219 Thu Dec 19 23:28:33 1996 Ulrich Drepper <drepper@cygnus.com> * resolv/resolv.h: Update from BIND 4.9.5-P1. * resolv/res_comp.c: Likewise. * resolv/res_debug.c: Likewise. * resolv/Banner: Update version number. Thu Dec 19 20:58:53 1996 Ulrich Drepper <drepper@cygnus.com> * elf/dlfcn.h: Add extern "C" wrapper. * io/utime.h: Don't define NULL since this isn't allowed in POSIX. * io/sys/stat.h: Declare `lstat' only if __USE_BSD || __USE_XOPEN_EXTENDED. * locale/locale.h: Define NULL. * math/math.c: Don't include <errno.h> to define math errors. * stdlib/stdlib.h: Likewise. * posix/unistd.h: Don't declare environ. * posix/sys/utsname.h (struct utsname): Declare member domainname as __domainname is !__USE_GNU. * signal/signal.h: Declare size_t only if __USE_BSD || __USE_XOPEN_EXTENDED. * stdio/stdio.h: Don't declare cuserid when __USE_POSIX, but instead when __USE_XOPEN. * string/string.h: Define strndup only if __USE_GNU. * sysdeps/unix/sysv/linux/clock.c: New file. * sysdeps/unix/sysv/linux/timebits.h: Define CLOCKS_PER_SEC as 1000000 per X/Open standard. * features.h: Add code to recognize _POSIX_C_SOURCE value 199309. Define __USE_POSIX199309. * posix/unistd.h: Declare fdatasync only if __USE_POSIX199309. * time/time.c: Declare nanosleep only if __USE_POSIX199309. Patches by Rdiger Helsch <rh@unifix.de>. * locale/locale.h: Add declaration of newlocale and freelocale. * new-malloc/Makefile (distibute): Add mtrace.awk. (dist-routines): Add mcheck and mtrace. (install-lib, non-lib.a): Define as libmcheck.a. * new-malloc/malloc.h: Add declaration of __malloc_initialized. * new-malloc/mcheck.c: New file. * new-malloc/mcheck.h: New file. * new-malloc/mtrace.c: New file. * new-malloc/mtrace.awk: New file. * posix/unistd.h: Correct prototype for usleep. * sysdeps/unix/bsd/usleep.c: De-ANSI-declfy. Correct return type. * sysdeps/unix/sysv/linux/usleep.c: Real implementation based on nanosleep. * signal/signal.h: Change protoype of __sigpause to take two arguments. Remove prototype for sigpause. Add two different macros named sigpause selected when __USE_BSD or __USE_XOPEN are defined. This is necessary since the old BSD definition of theis function collides with the X/Open definition. * sysdeps/posix/sigpause.c: Change function definition to also fit X/Open definition. * sysdeps/libm-i387/e_exp.S: Make sure stack is empty when the function is left. * sysdeps/libm-i387/e_expl.S: Likewise. Patch by HJ Lu. 1996-12-17 Paul Eggert <eggert@twinsun.com> * many, many files: Spelling corrections. * catgets/catgetsinfo.h (mmapped): Renamed from mmaped (in struct catalog_info.status). * mach/err_kern.sub (err_codes_unix), string/stratcliff.c (main): Fix spelling in message. * po/libc.pot: Fix spelling in message for `zic'; this anticipates a fix in the tzcode distribution. Wed Dec 18 15:48:02 1996 Ulrich Drepper <drepper@cygnus.com> * time/strftime.c: Implement ^ flag to cause output be converted to use upper case characters. * time/zic.c: Update from ADO tzcode1996n. Wed Dec 18 14:29:24 1996 Erik Naggum <erik@naggum.no> * time/strftime.c (add): Don't change global `i' until all is over. Define NULL is not already defined. Tue Dec 17 09:49:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * libio/iovsprintf.c (_IO_vsprintf): Change `&sf' to `&sf._sbf._f' to avoid the need for a cast. * libio/iovsscanf.c (_IO_vsscanf): Likewise. * sunrpc/rpc/xdr.h: Add prototype for xdr_free.
1996-12-20 09:39:50 +08:00
fstp %st(1)
Avoid excess range in results from i386 exp, hypot, pow functions (bug 18980). i386 exp, hypot and pow functions can return overflowing and underflowing values with excess range and precision; ; Wilco Dijkstra's patches to make isfinite etc. expand inline cause this pre-existing issue to result in test failures. This patch fixes those functions to avoid excess range and precision in their return values. Appropriate macros are added for the repeated code sequences; in future I'll add more such macros and refactor existing code forcing underflow (with or without also eliminating excess range and precision from the return value) to use such macros. Tested for x86. If, after this patch, you still see x86 libm test failures with excess range or precision, please file bugs in Bugzilla. [BZ #18980] * sysdeps/i386/fpu/i386-math-asm.h (DEFINE_FLT_MIN): New macro. (DEFINE_DBL_MIN): Likewise. (FLT_NARROW_EVAL_UFLOW_NONNEG_NAN): Likewise. (DBL_NARROW_EVAL_UFLOW_NONNEG_NAN): Likewise. (FLT_NARROW_EVAL_UFLOW_NONNEG): Likewise. (DBL_NARROW_EVAL_UFLOW_NONNEG): Likewise. * sysdeps/i386/fpu/e_exp.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. (__exp_finite): Use DBL_NARROW_EVAL_UFLOW_NONNEG. * sysdeps/i386/fpu/e_exp10.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp10): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp10f.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_exp10f): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp2.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp2): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp2f.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_exp2f): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_expf.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_expf): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. (__expf_finite): Use FLT_NARROW_EVAL_UFLOW_NONNEG. * sysdeps/i386/fpu/e_hypot.S: Include <i386-math-asm.h>. (__ieee754_hypot): Use DBL_NARROW_EVAL. * sysdeps/i386/fpu/e_hypotf.S: Include <i386-math-asm.h>. (__ieee754_hypotf): Use FLT_NARROW_EVAL. * sysdeps/i386/fpu/e_pow.S: Include <i386-math-asm.h>. (__ieee754_pow): Use DBL_NARROW_EVAL. * sysdeps/i386/fpu/e_powf.S: Include <i386-math-asm.h>. (__ieee754_powf): Use FLT_NARROW_EVAL. * sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S (__ieee754_expf_sse2): Convert double-precision result to single precision. * sysdeps/i386/fpu/libm-test-ulps: Update.
2015-09-19 05:53:22 +08:00
DBL_NARROW_EVAL_UFLOW_NONNEG_NAN
ret
Tue May 28 04:38:10 1996 Ulrich Drepper <drepper@cygnus.com> * limits.h: Change MB_LEN_MAX to 6. A 31-bit ISO 10646 character in UTF-8 encoding has that many bytes. * locale/langinfo.h: New element _NL_CTYPE_MB_CUR_MAX. * locale/categories.def: Add description of field _NL_CTYPE_MB_CUR_MAX. * locale/Makefile (routines): Add mb_cur_max. * locale/mb_cur_max.c: New file. This function gets called when the macro MB_CUR_MAX is used. * locale/C-ctype.c: Initialize new mb_cur_max field. * locale/localeinfo.h: Change magic value because of incompatible change. * locale/programs/ld-ctype.c: Determine value of mb_cur_max according to current character set and write it out with the rest. * stdlib/stdlib.h (MB_CUR_MAX): Not constant anymore. Get value according to currently used locale for catefory LC_CTYPE by calling the function __ctype_get_mb_cur_max. Tue May 28 03:27:46 1996 Ulrich Drepper <drepper@cygnus.com> * FAQ: Fix some typos. Tell that for Linux the kernel header files are necessary. * PROJECTS: New file. List of open jobs for glibc. * Makefile (distribute): Add PROJECTS. * crypt/GNUmakefile (headers): New variable. Mention crypt.h. * crypt/crypt.h: Header for crypt functions. * elf/elf.h: Add some new constants from recent Cygnus ELF header files. * login/getutid_r.c: Test for correct type. Don't depend on ut_type and ut_id unless _HAVE_UT_TYPE and _HAVE_UT_ID resp. are defined. Make really compliant with specification. * login/getutline_r.c, login/pututline_r.c: Don't depend on ut_type and ut_id unless _HAVE_UT_TYPE and _HAVE_UT_ID resp. are defined. Make really compliant with specification. * login/setutent_r.c: Don't depend on ut_type and ut_id unless _HAVE_UT_TYPE and _HAVE_UT_ID resp. are defined. * login/login.c, login/logout.c, login/logwtmp.c: Complete rewrite. Now based on getut*/setut* functions. * stdlib/strtol.c: Undo changes of Wed May 22 01:48:54 1996. This prevented using this file in other GNU packages. * sysdeps/gnu/utmpbits.h: Define _HAVE_UT_TYPE, _HAVE_UT_ID, and _HAVE_UT_TV because struct utmp has these members. * sysdeps/libm-i387/e_exp.S: Correct exp(+-Inf) case. * utmp.h: New file. Wrapper around login/utmp.h. * elf/dl-error.c (struct catch): New type. (catch): New static variable, struct catch *. (catch_env, signalled_errstring, signalled_objname): Variables removed. (_dl_signal_error): If CATCH is non-null, set its errstring and objname members and jump to CATCH->env. If it is null, call _dl_sysdep_fatal with a standard message. * elf/rtld.c (dl_main): Explode `doit' function into dl_main's body. No longer use _dl_catch_error.
1996-05-29 12:48:04 +08:00
update from main archive 970101 Wed Jan 1 15:15:00 1997 Ulrich Drepper <drepper@cygnus.com> * libio/Makefile (routines): Add fcloseall. * libio/fcloseall.c: New file. * libio/stdio.h [__USE_GNU]: Add prototype for fcloseall. * libio/iofclose.c: Don't close all streams when argument is NULL. * stdio/Makefile (routines): Add fcloseall. * stdio/fcloseall.c: New file. * stdio/stdio.h [__USE_GNU]: Add prototype for fcloseall. * stdio/fclose.c: Don't close all streams when argument is NULL. * manual/stdio.texi: Document fcloseall. * sysdeps/generic/abort.c: Call __fcloseall instead of fclose with NULL argument. * socket/sys/un.h (SUN_LEN): Add cast. * sunrpc/auth_unix.c (authunix_create): Change parameter types of uid, gid, and aup_gids to uid_t and gid_t respectively. (authunix_create_default): Likewise. (authunix_refresh): Correct cast for aup_gids assignment. * sunrpc/rpc/auth.h (authunix_create): Correct types in declaration. * sunrpc/rpc/auth_unix.h (struct authunix_parms): Correct field types to uid_t and gid_t respectively. (struct short_hand_verf): Likewise. Reported by Andreas Schwab. * sysdeps/ieee754/Makefile: New file. Make sure ieee754.h gets installed. * sysdeps/ieee754/ieee754.h: Protect against multiple inclusion and use in C++ programs. * sysdeps/libm-i387/e_pow.S: New file. Optimized ix87 assembler version of pow() function. * sysdeps/libm-i387/e_powf.S: New file. Float version. * sysdeps/libm-i387/e_powl.S: New file. Long double version. * sysdeps/libm-i387/s_expm1.S: New file. Optimized ix87 assembler version of expm1() function. * sysdeps/libm-i387/s_expm1f.S: New file. Float version. * sysdeps/libm-i387/s_expm1l.S: New file. Long double version. * sysdeps/libm-i387/e_exp.S: Optimize handling of +-Inf. Better handling of computation stack from current NetBSD sources. * sysdeps/libm-i387/e_expf.S: Likewise. * sysdeps/libm-i387/e_expl.S: Likewise. * sysdeps/libm-i387/e_log.S: Use fstp instead of fincstp. * sysdeps/libm-i387/e_logf.S: Likewise. * sysdeps/libm-i387/e_logl.S: Likewise. * sysdeps/libm-i387/e_log10.S: Likewise. * sysdeps/libm-i387/e_log10f.S: Likewise. * sysdeps/libm-i387/e_log10l.S: Likewise. * sysdeps/libm-i387/s_asinh.S: Likewise. * sysdeps/libm-i387/s_asinhf.S: Likewise. * sysdeps/libm-i387/s_asinhl.S: Likewise. * sysdeps/libm-i387/s_significandl.S: Likewise. * sysdeps/libm-i387/s_ceil.S: Don't create stack frame. Modify stack pointer directly. Use 32 bit instead of 16 bit operations. * sysdeps/libm-i387/s_ceilf.S: Likewise. * sysdeps/libm-i387/s_ceill.S: Likewise. * sysdeps/libm-i387/s_floor.S: Likewise. * sysdeps/libm-i387/s_floorf.S: Likewise. * sysdeps/libm-i387/s_floorl.S: Likewise. * sysdeps/libm-ieee754/e_coshf.c (huge): Don't declare volatile. * sysdeps/libm-ieee754/e_expf.c: Likewise. * sysdeps/libm-ieee754/e_powf.c: Likewise. From current NetBSD sources. * sysdeps/libm-ieee754/e_hypot.c (__ieee754_hypot): Don't initialize `a' and `b' in definition. * sysdeps/libm-ieee754/e_hypotf.c: Likewise. * sysdeps/libm-ieee754/e_hypotl.c: New file. Long double implementation. * sysdeps/libm-ieee754/e_sinhl.c: New file. Long double implementation. * sysdeps/stub/e_hypotl.c: Removed. We have a real version now. * sysdeps/stub/e_sinhl.c: Removed. * sysdeps/posix/sigpause.c (__sigpause): Use sigdelset instead of sigaddset. Reported by Andreas Schwab. (__default_sigpause): New function. Call __sigpause as BSD version. Make this the default function by providing alias sigpause. * sysdeps/stub/sigpause.c (__default_sigpause): New funciton. Simply fail. Provide alias sigpause. Wed Jan 1 12:34:54 1997 Ulrich Drepper <drepper@cygnus.com> * po/es.po: Update for glibc-1.98. * po/fr.po: Likewise. * po/sv.po: New file. Swedish translation. Wed Jan 1 12:18:07 1997 MacGyver <macgyver@tos.net> * values.h: Fix typos: use SHRT_MAX but SHORT_MAX and SHRT_MIN but SHORT_MIN. Tue Dec 24 23:10:21 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile: Replace `stubs.h' by `gnu/stubs.h'. * features.h: Include <gnu/stubs.h> instead of <stubs.h>. Tue Dec 24 22:16:55 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile (subdirs): Move `elf' last so that librtld.so isn't relinked in the `make others' pass if an add-on adds something to libc. Mon Dec 23 21:23:16 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/abort-instr.h: New File. Mon Dec 23 21:16:38 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/Makefile ($(subdir)=elf): Define CFLAGS-rtld.c to prevent warning. Mon Dec 23 21:14:22 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * resolv/Makefile (subdirs-dirs): Define. Mon Dec 23 20:56:49 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/gnu/utmpbits.h (struct utmp): Fix padding. Mon Dec 30 11:05:11 1996 Ulrich Drepper <drepper@cygnus.com> Update from ADO tzcode1996o. * time/difftime.c: De-ANSI-declfy. Simplify computation of hibit according to ADO version. * time/zic.c: Correct typo is message. Update from ADO tzdata1996n. * time/asia: Updated. * time/australasia: Likewise. * time/europe: Likewise. * time/northamerica: Likewise. * time/southamerica: Likewise.
1997-01-01 23:28:18 +08:00
1: testl $0x200, %eax /* Test sign. */
jz 2f /* If positive, jump. */
Update. 1997-03-16 18:43 Ulrich Drepper <drepper@cygnus.com> * manual/filesys.texi: Add documentation for scandir and alphasort. * math/math.c (fpclassify): Correct stupid typos. * math/libm-test.c: New file. libm test suite by Andreas Jaeger. * nss/nss_files/files-hosts.c: Add gethostbyname2 imlementation. * posix/Makefile (routines): Add bsd-getpgrp. * posix/bsd-getpgrp.c: New file. * posix/unistd.h [__FAVOR_BSD]: Define macro getpgrp which maps calls to __bsd_getpgrp. * sysdeps/generic/getpgrp.c: De-ANSI-declfy. * sysdeps/i386/huge_val.h: New file. ix87 specific infinity values. * sysdeps/m68k/huge_val.h: New file. m68k specific infinity values. * sysdeps/generic/huge_val.h: Remove definition of long double definition. Make it the same as the double definition. * sysdeps/libm-i387/e_acos.S: Fix bug in FPU stack handling. * sysdeps/libm-i387/e_acosf.S: Likewise. * sysdeps/libm-i387/e_acosl.S: Likewise. * sysdeps/libm-i387/e_asin.S: Likewise. * sysdeps/libm-i387/e_asinf.S: Likewise. * sysdeps/libm-i387/e_asinl.S: Likewise. * sysdeps/libm-i387/e_exp.S: Likewise. * sysdeps/libm-i387/e_expf.S: Likewise. * sysdeps/libm-i387/e_expl.S: Likewise. * sysdeps/libm-i387/e_scalbn.S: Likewise. * sysdeps/libm-i387/e_scalbnf.S: Likewise. * sysdeps/libm-i387/e_scalbnl.S: Likewise. * sysdeps/libm-i387/e_log.S: Optimize branch code. * sysdeps/libm-i387/e_logf.S: Likewise. * sysdeps/libm-i387/e_logl.S: Likewise. * sysdeps/libm-i387/e_log10.S: Likewise. * sysdeps/libm-i387/e_log10f.S: Likewise. * sysdeps/libm-i387/e_log10l.S: Likewise. * sysdeps/libm-i387/e_pow.S: Major rewrite to handle special cases. * sysdeps/libm-i387/e_powf.S: Likewise. * sysdeps/libm-i387/e_powl.S: Likewise. * sysdeps/libm-i387/e_expm1.S: Change return value for -inf argument to -1.0. * sysdeps/libm-i387/e_expm1f.S: Likewise. * sysdeps/libm-i387/e_expm1l.S: Likewise. * sysdeps/libm-i387/e_isinfl.c: Return -1 for -inf. * sysdeps/libm-i387/e_logbl.S: Correct return value. Discard first stack element after fxtract. * sysdeps/libm-ieee754/e_atan2l.c: New file. `long double' implementation for atan2 function. * sysdeps/libm-ieee754/k_standard.c: Return NAN for libm not in _SVID_ mode when acos, asin, atan2, log, log10 is called with argument out of range. Add new error case for pow(+0,neg). * sysdeps/libm-ieee754/s_fpclassifyf.c: Correct recognition of NaN and +-inf. * sysdeps/libm-ieee754/s_fpclassifyl.c: Mask out explicit leading digit in stupid 80 bit formats. * sysdeps/libm-ieee754/s_isinf.c: Rewrite to return -1 for -inf. * sysdeps/libm-ieee754/s_isinff.c: Likewise. * sysdeps/libm-ieee754/s_isinfl.c: Likewise. * sysdeps/libm-ieee754/s_scalbnl.c (huge, tiny): Adapt values for long double type. * sysdeps/libm-ieee754/w_atan2.c: Do not raise exception expect when in SVID mode. * sysdeps/libm-ieee754/w_atan2f.c: Likewise. * sysdeps/libm-ieee754/w_atan2l.c: Likewise. * sysdeps/libm-ieee754/w_pow.c: Distinguish error cases for x is +0 or -0. * sysdeps/posix/isfdtype.c: Add cast to prevent warning. * sysdeps/stub/fcntlbits.h: Update copyright. * sysdeps/unix/bsd/fcntlbits.h: Likewise. * sysdeps/unix/bsd/bsd4.4/fcntlbits.h: Likewise. * sysdeps/unix/bsd/sun/sunos4/fcntlbits.h: Likewise. * sysdeps/unix/bsd/ultrix4/fcntlbits.h: Likewise. * sysdeps/unix/common/fcntlbits.h: Likewise. * sysdeps/unix/sysv/fcntlbits.h: Likewise. Define O_FSYNC as alias of O_SYNC. Add BSD compatibility macros FAPPEND, FFSYNC, FNONBLOCK, and FNDELAY. * sysdeps/unix/sysv/irix4/fcntlbits.h: Likewise. * sysdeps/unix/readdir_r.c: Don't copy whole `struct dirent' record, only reclen bytes. * sysdeps/unix/sysv/linux/fcntlbits.h [__USE_GNU]: Add O_READ, O_WRITE and O_NORW. * sysdeps/unix/sysv/linux/alpha/fcntlbits.h: Likewise. * sysdeps/unix/sysv/linux/init-first.h: Add copyright. * sysdeps/unix/sysv/linux/fxstat.c: New file. Rewrite kernel-level struct stat to user-level form. * sysdeps/unix/sysv/linux/lxstat: New file. * sysdeps/unix/sysv/linux/xstat: New file. * sysdeps/unix/sysv/linux/kernel_stat.h: Define struct stat used in kernel. * sysdeps/unix/sysv/linux/statbuf.h (struct stat): Change definition to use prescribed types for elements. (_STAT_VER): Change to value 3. * sysdeps/unix/sysv/linux/alph/statbuf.h: Likewise. * sysdeps/unix/sysv/linux/Dist: Add kernel_stat.h. * sysdeps/unix/sysv/linux/alpha/Dist: Likewise. * time/Makefile: Correct dependencies for test-tz. 1997-03-16 14:59 Philip Blundell <phil@london.uk.eu.org> * resolv/netdb.h: Add prototypes for gai_strerror and getnameinfo (needed for IPv6 basic sockets API). 1997-03-16 15:02 a sun <asun@zoology.washington.edu> * sysdeps/unix/sysv/linux/net/if_ppp.h: Don't use incompatible kernel header. * sysdeps/unix/sysv/linux/net/ppp_defs.h: Likewise. 1997-03-14 17:15 Ulrich Drepper <drepper@cygnus.com> * db/hash/hash_bigkey.c (__big_delete): Don't call __free_ovflpage without testing for last_bfp to be NULL. Reported by fabsoft@fabserver1.zarm.uni-bremen.de. 1997-03-13 11:42 Jim Meyering <meyering@asic.sc.ti.com> * time/mktime.c (TIME_T_MIN): Work around a bug in Cray C 5.0.3.0. 1997-03-14 04:00 Kurt Garloff <garloff@kg1.ping.de> * sysdeps/unix/sysv/linux/fcntlbits.h (O_FSYNC): Make alias for O_SYNC. (FASYNC): Move to __USE_BSD section. Create new macro O_ASYNC. 1997-03-14 02:50 Ulrich Drepper <drepper@cygnus.com> * nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyname2_r): New functions. Compare result for correct address type. (_nss_nis_gethostbyname_r): Use _nss_nis_gethostbyname2_r. Reported by Mirko Streckenbach <mirko@marian.hil.de>. 1997-02-17 01:40 Zlatko Calusic <zcalusic@srce.hr> * time/strptime.c (recursive): Return rp to caller. (strptime_internal): First check for long names, then abbreviated (month & weekday). 1997-03-10 19:44 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makeconfig: Remove useless definitions of ASFLAGS-%. * config.make.in (ASFLAGS-.so): Remove. * configure.in: Don't substitute ASFLAGS_SO. * sysdeps/sparc/configure.in: Remove file. * sysdeps/sparc/Makefile (ASFLAGS-.so): Define. 1997-03-11 17:00 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * time/strptime.c (strptime_internal) [case 'Y']: Always subtract 1900 from year, regardless of century. 1997-03-12 05:43 Ulrich Drepper <drepper@cygnus.com> * stdlib/strtod.c (_tens_in_limb) [BITS_PER_MP_LIMB > 32]: Make all numbers unsigned to make buggy gccs happy. Patch by Bryan W. Headley <bheadley@interaccess.com>. * sysdeps/unix/sysv/linux/netinet/ip.h: Add backward-compatibility definitions. Patch by a sun <asun@zoology.washington.edu>. Pretty print header. * Makerules (build-shlib): Also create symlink if library is versioned. based on a patch by H.J. Lu <hjl@gnu.ai.mit.edu>. Remove special rule to libc.so symlink. 1997-03-11 20:16 Andreas Jaeger <aj@arthur.pfalz.de> * manual/math.texi (Domain and Range Errors): Change descriptions according to recent changes for ISO C 9X. 1997-03-11 22:39 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/k_standard.c (__kernel_standard): Correct return values for acos, asin, and atan2. Reported by Andreas Jaeger <aj@arthur.pfalz.de>. 1997-03-10 18:16 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * ypclnt.c (__yp_bind): Fix possible buffer overflow. 1997-03-10 18:06 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> * dirent/alphasort.c (alphasort): Interpret arguments as pointers to pointers to directory entries so that alphasort really can be used as argument for scandir. 1997-03-09 23:33 Andreas Jaeger <aj@arthur.pfalz.de> * string/strdup.c: Declare memcpy if !(_LIBC || STDC_HEADERS) instead of strcpy. 1997-03-10 03:34 Ulrich Drepper <drepper@cygnus.com> * catgets/catgets.c (catopen): Always add NLSPATH to search path for catalogs, not only if the envvar NLSPATH is not available. Reported by Andries.Brouwer@cwi.nl. 1997-03-10 02:46 Ulrich Drepper <drepper@cygnus.com> * Makeconfig (localtime-file): Don't define using installation directory. (inst_localtime-file): New variable. * time/Makefile (installed-localtime-file): Use inst_localtime-file. Reported by Edward Seidl <seidl@janed.com>. 1997-03-10 02:31 H.J. Lu <hjl@gnu.ai.mit.edu> * time/Makefile: Add source files to dependencies for test data. 1997-03-09 22:53 Thorsten Kukuk <kukuk@weber.uni-paderborn.de> * nis/nss_nis/nis-ethers.c: Don't ignore return value of yp_all. * nis/nss_nis/nis-proto.c: Likewise. * nis/nss_nis/nis-rpc.c: Likewise. * nis/nss_nis/nis-service.c: Likewise. 1997-03-08 14:37 Miguel de Icaza <miguel@nuclecu.unam.mx> * sysdeps/sparc/dl-machine.h (elf_machine_rela): Upgrade to versioning; Added missing R_SPARC_WDISP30 handling. (RTLD_START): Implement it. * sysdeps/unix/sysv/linux/sparc/brk.c: Fix. * sysdeps/unix/sysv/linux/sparc/start.c: Startup code for Linux/SPARC. 1997-03-02 18:06 Miguel de Icaza <miguel@nuclecu.unam.mx> * sysdeps/sparc/dl-machine.h (RTLD_START): Make arg as expected by the dynamic linker instead of having a new conditional define. Thanks to Richard Henderson for pointing this out. * elf/rtld.c: Remove usage of ELF_ADJUST_ARG. 1997-03-20 20:44 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * sysdeps/mach/hurd/euidaccess.c: Define as __euidaccess and make euidaccess weak alias. 1997-03-07 10:30 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * stdio-common/printf_fphex.c (MIN): New macro. * sysdeps/generic/netinet/in.h: Include <sys/types.h>. * sysdeps/generic/sys/mman.h (msync): Mention third arg. * sysdeps/generic/netinet/in.h: Add definitions for IPv6 basic API. (See change by Philip Blundell on Feb 16, 1997.) 1997-03-05 10:40 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * hurd/hurd.h (vpprintf): Include <stdarg.h>. New declaration. * hurd/set-host.c (_hurd_set_host_config): Cast second arg to __file_name_split. * mach/mach_error.c (mach_error_string_int): Give full prototype. * mach/errstring.c (mach_error_string_int): Likewise. * mach/error_compat.c (__mach_error_map_compat): Likewise. * hurd/vpprintf.c (pwrite, vpprintf): Likewise. * stdio/vasprintf.c (vasprintf): Likewise. * mach/mach/mach_traps.h: Include <mach/kern_return.h>. * mach/spin-solid.c: Include <mach/mach_traps.h>. * mach/spin-solid.c (__spin_lock_solid): Provide arg to swtch_pri. * mach/mach_init.c: Include <mach/mig_support.h>. * mach/mach_error.h (mach_error_string, mach_error, mach_error_type): Always provide prototypes. * mach/mach/error.h (mach_error_fn_t): Comment out declaration; it appears to be entirely unused dead code. * stdio/stdio.h (freopen): Fix spelling error. 1997-03-02 13:38 Miles Bader <miles@gnu.ai.mit.edu> * string/argz.h (__need_error_t): New macro, before including <errno.h> [!__const] (__const): New macro. [!__error_t_defined] (error_t): New typedef. * sysdeps/generic/socketbits.h: Add PF_FILE as synonym for PF_LOCAL * sysdeps/unix/sysv/linux/socketbits.h: Likewise.
1997-03-17 04:28:07 +08:00
fstp %st
Thu May 30 11:24:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> * po/header.pot: Replace with exact boilerplate pinard dictates. * sysdeps/i386/strtok.S (Lillegal_argument): Remove this code to set errno and the check that jumped to it. * sysdeps/mach/hurd/Makefile (errnos.d): Use $(sed-remove-objpfx). Thu May 30 03:21:57 1996 Ulrich Drepper <drepper@cygnus.com> * FAQ: Document need of gperf program for developers. * elf/elf.h: Fix typos in comments. * libio/stdio.h [!__STRICT_ANSI__ || _POSIX_SOURCE]: Add prototypes for `ctermid' and `cuserid'. * locale/programs/locale.c: Switch to user selected locale before printing variables. * math/Makefile [$(long-double-fcts)==yes]: Define long-m-routines and long-c-routines. Only if the `long double' data type is available we need to compile the functions. (libm-routines): Add $(long-m-routines). (routines): Remove isinfl, isnanl. Use new file s_isinfl and s_isnanl instead if `long double' is available. * math/math.h: Include <mathcalls.h> again to define `long double' functions. * math/math_private.h: Define data types, prototypes and access macros for `long double'. * stdlib/stdlib.h: Add prototypes for `strtoll' and `strtoull'. [GCC2 && OPTIMIZE]: Define strto{,u}ll as inline function which calls __strto{,u}q_internal. * stdlib/strfmon.c: Replace PTR by `void *'. * stdlib/strtoq.c: Define strtoll as weak alias. * stdlib/strtouq.c: Define strtoull as weak alias. * string/tester.c: Correct `strsep' test. * sysdeps/generic/strsep.c: Make compatible with BSD version. Trailing characters of skip set are not skipped. In this case empty tokens are returned. * sysdeps/i386/isinfl.c, sysdeps/i386/isnanl.c, sysdeps/ieee754/isinf.c, sysdeps/ieee754/isinfl.c, sysdeps/ieee754/isnan.c, sysdeps/ieee754/isnanl.c: Removed. We now use the versions part of libm. * sysdeps/i386/strsep.S: Removed. Generic C version is of similar speed. * sysdeps/i386/strtok.S: Remove support for `strsep'. * sysdeps/libm-i387/e_acosl.S, sysdeps/libm-i387/s_ceill.S, sysdeps/libm-i387/s_copysignl.S, sysdeps/libm-i387/s_finitel.S, sysdeps/libm-i387/s_floorl.S, sysdeps/libm-i387/s_isinfl.c, sysdeps/libm-i387/s_isnanl.c, sysdeps/libm-i387/s_nextafterl.c, sysdeps/libm-i387/s_rintl.S, sysdeps/libm-i387/s_significandl.S: New i387 specific math functions implementing `long double' versions. * sysdeps/libm-ieee754/s_ceill.c, sysdeps/libm-ieee754/s_copysignl.c, sysdeps/libm-ieee754/s_fabsl.c, sysdeps/libm-ieee754/s_finitel.c, sysdeps/libm-ieee754/s_floorl.c, sysdeps/libm-ieee754/s_isinfl.c, sysdeps/libm-ieee754/s_isnanl.c, sysdeps/libm-ieee754/s_nextafterl.c, sysdeps/libm-ieee754/s_rintl.c, sysdeps/libm-ieee754/s_scalbnl.c, sysdeps/libm-ieee754/s_significandl.c: New generic `long double' versions of libm functions. * sysdeps/libm-i387/e_exp.S: Add a few comments to explain the Intel FPU nonsense. * sysdeps/libm-i387/s_ceil.S, sysdeps/libm-i387/s_ceilf.S, sysdeps/libm-i387/s_floor.S, sysdeps/libm-i387/s_floorf.S: Correct handling of local variables. The old version created a stack frame but stored the values outside. * sysdeps/libm-ieee754/s_isinf.c, sysdeps/libm-ieee754/s_isnan.c [!NO_LONG_DOUBLE]: Define alias with `long double' versions name. * login/pututline_r.c: Include sys/stat.h. Fix typos. according to currently used locale for category LC_CTYPE by inet_nsap_ntoa. Now in <arpa/inet.h>. _IO_dup2 to contain complete parameter list.
1996-05-31 00:12:42 +08:00
fldz /* Set result to 0. */
update from main archive 970101 Wed Jan 1 15:15:00 1997 Ulrich Drepper <drepper@cygnus.com> * libio/Makefile (routines): Add fcloseall. * libio/fcloseall.c: New file. * libio/stdio.h [__USE_GNU]: Add prototype for fcloseall. * libio/iofclose.c: Don't close all streams when argument is NULL. * stdio/Makefile (routines): Add fcloseall. * stdio/fcloseall.c: New file. * stdio/stdio.h [__USE_GNU]: Add prototype for fcloseall. * stdio/fclose.c: Don't close all streams when argument is NULL. * manual/stdio.texi: Document fcloseall. * sysdeps/generic/abort.c: Call __fcloseall instead of fclose with NULL argument. * socket/sys/un.h (SUN_LEN): Add cast. * sunrpc/auth_unix.c (authunix_create): Change parameter types of uid, gid, and aup_gids to uid_t and gid_t respectively. (authunix_create_default): Likewise. (authunix_refresh): Correct cast for aup_gids assignment. * sunrpc/rpc/auth.h (authunix_create): Correct types in declaration. * sunrpc/rpc/auth_unix.h (struct authunix_parms): Correct field types to uid_t and gid_t respectively. (struct short_hand_verf): Likewise. Reported by Andreas Schwab. * sysdeps/ieee754/Makefile: New file. Make sure ieee754.h gets installed. * sysdeps/ieee754/ieee754.h: Protect against multiple inclusion and use in C++ programs. * sysdeps/libm-i387/e_pow.S: New file. Optimized ix87 assembler version of pow() function. * sysdeps/libm-i387/e_powf.S: New file. Float version. * sysdeps/libm-i387/e_powl.S: New file. Long double version. * sysdeps/libm-i387/s_expm1.S: New file. Optimized ix87 assembler version of expm1() function. * sysdeps/libm-i387/s_expm1f.S: New file. Float version. * sysdeps/libm-i387/s_expm1l.S: New file. Long double version. * sysdeps/libm-i387/e_exp.S: Optimize handling of +-Inf. Better handling of computation stack from current NetBSD sources. * sysdeps/libm-i387/e_expf.S: Likewise. * sysdeps/libm-i387/e_expl.S: Likewise. * sysdeps/libm-i387/e_log.S: Use fstp instead of fincstp. * sysdeps/libm-i387/e_logf.S: Likewise. * sysdeps/libm-i387/e_logl.S: Likewise. * sysdeps/libm-i387/e_log10.S: Likewise. * sysdeps/libm-i387/e_log10f.S: Likewise. * sysdeps/libm-i387/e_log10l.S: Likewise. * sysdeps/libm-i387/s_asinh.S: Likewise. * sysdeps/libm-i387/s_asinhf.S: Likewise. * sysdeps/libm-i387/s_asinhl.S: Likewise. * sysdeps/libm-i387/s_significandl.S: Likewise. * sysdeps/libm-i387/s_ceil.S: Don't create stack frame. Modify stack pointer directly. Use 32 bit instead of 16 bit operations. * sysdeps/libm-i387/s_ceilf.S: Likewise. * sysdeps/libm-i387/s_ceill.S: Likewise. * sysdeps/libm-i387/s_floor.S: Likewise. * sysdeps/libm-i387/s_floorf.S: Likewise. * sysdeps/libm-i387/s_floorl.S: Likewise. * sysdeps/libm-ieee754/e_coshf.c (huge): Don't declare volatile. * sysdeps/libm-ieee754/e_expf.c: Likewise. * sysdeps/libm-ieee754/e_powf.c: Likewise. From current NetBSD sources. * sysdeps/libm-ieee754/e_hypot.c (__ieee754_hypot): Don't initialize `a' and `b' in definition. * sysdeps/libm-ieee754/e_hypotf.c: Likewise. * sysdeps/libm-ieee754/e_hypotl.c: New file. Long double implementation. * sysdeps/libm-ieee754/e_sinhl.c: New file. Long double implementation. * sysdeps/stub/e_hypotl.c: Removed. We have a real version now. * sysdeps/stub/e_sinhl.c: Removed. * sysdeps/posix/sigpause.c (__sigpause): Use sigdelset instead of sigaddset. Reported by Andreas Schwab. (__default_sigpause): New function. Call __sigpause as BSD version. Make this the default function by providing alias sigpause. * sysdeps/stub/sigpause.c (__default_sigpause): New funciton. Simply fail. Provide alias sigpause. Wed Jan 1 12:34:54 1997 Ulrich Drepper <drepper@cygnus.com> * po/es.po: Update for glibc-1.98. * po/fr.po: Likewise. * po/sv.po: New file. Swedish translation. Wed Jan 1 12:18:07 1997 MacGyver <macgyver@tos.net> * values.h: Fix typos: use SHRT_MAX but SHORT_MAX and SHRT_MIN but SHORT_MIN. Tue Dec 24 23:10:21 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile: Replace `stubs.h' by `gnu/stubs.h'. * features.h: Include <gnu/stubs.h> instead of <stubs.h>. Tue Dec 24 22:16:55 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile (subdirs): Move `elf' last so that librtld.so isn't relinked in the `make others' pass if an add-on adds something to libc. Mon Dec 23 21:23:16 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/abort-instr.h: New File. Mon Dec 23 21:16:38 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/Makefile ($(subdir)=elf): Define CFLAGS-rtld.c to prevent warning. Mon Dec 23 21:14:22 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * resolv/Makefile (subdirs-dirs): Define. Mon Dec 23 20:56:49 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/gnu/utmpbits.h (struct utmp): Fix padding. Mon Dec 30 11:05:11 1996 Ulrich Drepper <drepper@cygnus.com> Update from ADO tzcode1996o. * time/difftime.c: De-ANSI-declfy. Simplify computation of hibit according to ADO version. * time/zic.c: Correct typo is message. Update from ADO tzdata1996n. * time/asia: Updated. * time/australasia: Likewise. * time/europe: Likewise. * time/northamerica: Likewise. * time/southamerica: Likewise.
1997-01-01 23:28:18 +08:00
2: ret
update from main archive 961229 Mon Dec 30 01:32:59 1996 Ulrich Drepper <drepper@cygnus.com> * tme/localtime.c: Rewrite so that localtime_r does not call tzset, but localtime does. * features.h: Rename ANSI C to ISO C. Mention __GLIBC__ and __GLIBC_MINOR__ macros. * gnu-versions.h: Add _GNU_GETOPT_INTERFACE_VERSION. * posix/getopt.c: Use _GNU_GETOPT_INTERFACE_VERSION to check whether we can elide the code. * posix/getopt1.c: Likewise. * posix/Makefile: Correct copyright. * elf/dl-error.c (_dl_catch_error): Clear `catch' also when error occurred. * elf/dl-support.c (_dl_sysdep_open_zero_fill): Don't define if MAP_ANON is defined. * elf/eval.c: Use __getline instead of getline. * elf/rtld.c (dl_main): Check return value of _dl_new_object function for NULL. * sysdeps/generic/dl-cache.c: Update copyright. * signal/Makefile: Correct copyright. (routines): Remove gsignal and ssignal. Add bsd_signal. * signal/gsignal.c: Removed. Now is made an alias. * signal/ssignal.c: Likewise. * sysdeps/posix/raise.c: Add alias gsignal. * sysdeps/stub/raise.c: Likewise. * sysdeps/posix/signal.c: Add alias ssignal. * sysdeps/stub/signal.c: Likewise. * signal/signal.h: Declare bsd_signal. Define signal as bsd_signal if __FAVOR_BSD. * sysdeps/posix/bsd_signal.c: New file. Implementation of XPG function. * sysdeps/unix/sysv/linux/signal.c: Add explanation. * socket/sys/un.h: Define SUN_LEN according to POSIX.1g. * stdio-common/Makefile (tests): Add scanf10. * stdio-common/scanf10.c: New file. * stdio-common/vfscanf.c: Decrement counter if EOF is read while reading string. * sysdeps/libm-i387/e_acos.S: Use END, not PSEUDO_END. * sysdeps/libm-i387/e_acosl.S: Likewise. * sysdeps/libm-i387/e_asin.S: Likewise. * sysdeps/libm-i387/e_asinl.S: Likewise. * sysdeps/libm-i387/e_atan2.S: Likewise. * sysdeps/libm-i387/e_atan2f.S: Likewise. * sysdeps/libm-i387/e_atan2l.S: Likewise. * sysdeps/libm-i387/e_exp.S: Likewise. * sysdeps/libm-i387/e_expl.S: Likewise. * sysdeps/libm-i387/e_fmod.S: Likewise. * sysdeps/libm-i387/e_fmodl.S: Likewise. * sysdeps/libm-i387/e_log.S: Likewise. * sysdeps/libm-i387/e_log10.S: Likewise. * sysdeps/libm-i387/e_log10l.S: Likewise. * sysdeps/libm-i387/e_logl.S: Likewise. * sysdeps/libm-i387/e_remainder.S: Likewise. * sysdeps/libm-i387/e_remainderf.S: Likewise. * sysdeps/libm-i387/e_remainderl.S: Likewise. * sysdeps/libm-i387/e_scalb.S: Likewise. * sysdeps/libm-i387/e_scalbl.S: Likewise. * sysdeps/libm-i387/e_sqrt.S: Likewise. * sysdeps/libm-i387/e_sqrtf.S: Likewise. * sysdeps/libm-i387/e_sqrtl.S: Likewise. * sysdeps/libm-i387/s_atan.S: Likewise. * sysdeps/libm-i387/s_atanf.S: Likewise. * sysdeps/libm-i387/s_atanl.S: Likewise. * sysdeps/libm-i387/s_ceil.S: Likewise. * sysdeps/libm-i387/s_ceilf.S: Likewise. * sysdeps/libm-i387/s_ceill.S: Likewise. * sysdeps/libm-i387/s_copysign.S: Likewise. * sysdeps/libm-i387/s_copysignf.S: Likewise. * sysdeps/libm-i387/s_copysignl.S: Likewise. * sysdeps/libm-i387/s_cos.S: Likewise. * sysdeps/libm-i387/s_cosf.S: Likewise. * sysdeps/libm-i387/s_cosl.S: Likewise. * sysdeps/libm-i387/s_finite.S: Likewise. * sysdeps/libm-i387/s_finitef.S: Likewise. * sysdeps/libm-i387/s_finitel.S: Likewise. * sysdeps/libm-i387/s_floor.S: Likewise. * sysdeps/libm-i387/s_floorf.S: Likewise. * sysdeps/libm-i387/s_floorl.S: Likewise. * sysdeps/libm-i387/s_ilogb.S: Likewise. * sysdeps/libm-i387/s_ilogbf.S: Likewise. * sysdeps/libm-i387/s_ilogbl.S: Likewise. * sysdeps/libm-i387/s_log1p.S: Likewise. * sysdeps/libm-i387/s_log1pf.S: Likewise. * sysdeps/libm-i387/s_log1pl.S: Likewise. * sysdeps/libm-i387/s_logb.S: Likewise. * sysdeps/libm-i387/s_logbf.S: Likewise. * sysdeps/libm-i387/s_logbl.S: Likewise. * sysdeps/libm-i387/s_rint.S: Likewise. * sysdeps/libm-i387/s_rintf.S: Likewise. * sysdeps/libm-i387/s_rintl.S: Likewise. * sysdeps/libm-i387/s_scalbn.S: Likewise. * sysdeps/libm-i387/s_scalbnf.S: Likewise. * sysdeps/libm-i387/s_scalbnl.S: Likewise. * sysdeps/libm-i387/s_significand.S: Likewise. * sysdeps/libm-i387/s_significandf.S: Likewise. * sysdeps/libm-i387/s_significandl.S: Likewise. * sysdeps/libm-i387/s_sin.S: Likewise. * sysdeps/libm-i387/s_sinf.S: Likewise. * sysdeps/libm-i387/s_sinl.S: Likewise. * sysdeps/libm-i387/e_log.S: Use fyl2xp1 instruction for values near 1 to increase precision. * sysdeps/libm-i387/e_log10.S: Likewise. * sysdeps/libm-i387/e_log10l.S: Likewise. * sysdeps/libm-i387/e_logl.S: Likewise. * sysdeps/libm-i387/s_cos.S: Use testl instead of andw. * sysdeps/libm-i387/s_cosl.S: Likewise. * sysdeps/libm-i387/s_sin.S: Likewise. * sysdeps/libm-i387/s_sinl.S: Likewise. * sysdeps/libm-i387/s_tan.S: Likewise. * sysdeps/libm-i387/s_tanl.S: Likewise. * sysdeps/libm-i387/e_acosf.S: New file. Add float versions. * sysdeps/libm-i387/e_asinf.S: Likewise. * sysdeps/libm-i387/e_expf.S: Likewise. * sysdeps/libm-i387/e_fmodf.S: Likewise. * sysdeps/libm-i387/e_log10f.S: Likewise. * sysdeps/libm-i387/e_logf.S: Likewise. * sysdeps/libm-i387/e_scalbf.S: Likewise. * sysdeps/libm-i387/e_acosh.S: New file. Highly optimized versions. * sysdeps/libm-i387/e_acoshf.S: Likewise. * sysdeps/libm-i387/e_acoshl.S: Likewise. * sysdeps/libm-i387/e_atanh.S: Likewise. * sysdeps/libm-i387/e_atanhf.S: Likewise. * sysdeps/libm-i387/e_atanhl.S: Likewise. * sysdeps/libm-i387/e_asinh.S: Likewise. * sysdeps/libm-i387/e_asinhf.S: Likewise. * sysdeps/libm-i387/e_asinhl.S: Likewise. * sysdeps/libm-ieee754/s_asinhf.c: Tweak a bit. Use lower levels for simplified handling. * sysdeps/unix/sysv/linux/syscalls.list: Add query_module. Sun Dec 22 01:39:29 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * inet/rcmd.c (rcmd): Set h_errno before calling herror. * inet/rexec.c (rexec): Likewise. Sat Dec 21 21:47:08 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysv/linux/m68k/setjmp.c (__setjmp): Make it really compatible. Sun Dec 22 03:23:33 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-i387/s_log1p.S: Use fyl2xp1 for numbers in range -0.29 <= x <= 0.29, otherwise the old method. * sysdeps/libm-i387/s_log1pf.S: Likewise. * sysdeps/libm-i387/s_log1pl.S: Likewise.
1996-12-30 09:47:46 +08:00
END (__ieee754_exp)
ENTRY(__exp_finite)
#ifdef PIC
LOAD_PIC_REG (cx)
#endif
fldl2e
fmull 4(%esp) /* x * log2(e) */
fld %st
frndint /* int(x * log2(e)) */
fsubr %st,%st(1) /* fract(x * log2(e)) */
fxch
f2xm1 /* 2^(fract(x * log2(e))) - 1 */
fld1
faddp /* 2^(fract(x * log2(e))) */
fscale /* e^x */
fstp %st(1)
Avoid excess range in results from i386 exp, hypot, pow functions (bug 18980). i386 exp, hypot and pow functions can return overflowing and underflowing values with excess range and precision; ; Wilco Dijkstra's patches to make isfinite etc. expand inline cause this pre-existing issue to result in test failures. This patch fixes those functions to avoid excess range and precision in their return values. Appropriate macros are added for the repeated code sequences; in future I'll add more such macros and refactor existing code forcing underflow (with or without also eliminating excess range and precision from the return value) to use such macros. Tested for x86. If, after this patch, you still see x86 libm test failures with excess range or precision, please file bugs in Bugzilla. [BZ #18980] * sysdeps/i386/fpu/i386-math-asm.h (DEFINE_FLT_MIN): New macro. (DEFINE_DBL_MIN): Likewise. (FLT_NARROW_EVAL_UFLOW_NONNEG_NAN): Likewise. (DBL_NARROW_EVAL_UFLOW_NONNEG_NAN): Likewise. (FLT_NARROW_EVAL_UFLOW_NONNEG): Likewise. (DBL_NARROW_EVAL_UFLOW_NONNEG): Likewise. * sysdeps/i386/fpu/e_exp.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. (__exp_finite): Use DBL_NARROW_EVAL_UFLOW_NONNEG. * sysdeps/i386/fpu/e_exp10.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp10): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp10f.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_exp10f): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp2.S: Include <i386-math-asm.h>. (dbl_min): Replace with use of DEFINE_DBL_MIN. (__ieee754_exp2): Use DBL_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_exp2f.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_exp2f): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. * sysdeps/i386/fpu/e_expf.S: Include <i386-math-asm.h>. (flt_min): Replace with use of DEFINE_FLT_MIN. (__ieee754_expf): Use FLT_NARROW_EVAL_UFLOW_NONNEG_NAN. (__expf_finite): Use FLT_NARROW_EVAL_UFLOW_NONNEG. * sysdeps/i386/fpu/e_hypot.S: Include <i386-math-asm.h>. (__ieee754_hypot): Use DBL_NARROW_EVAL. * sysdeps/i386/fpu/e_hypotf.S: Include <i386-math-asm.h>. (__ieee754_hypotf): Use FLT_NARROW_EVAL. * sysdeps/i386/fpu/e_pow.S: Include <i386-math-asm.h>. (__ieee754_pow): Use DBL_NARROW_EVAL. * sysdeps/i386/fpu/e_powf.S: Include <i386-math-asm.h>. (__ieee754_powf): Use FLT_NARROW_EVAL. * sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S (__ieee754_expf_sse2): Convert double-precision result to single precision. * sysdeps/i386/fpu/libm-test-ulps: Update.
2015-09-19 05:53:22 +08:00
DBL_NARROW_EVAL_UFLOW_NONNEG
ret
END(__exp_finite)
libm_alias_finite (__exp_finite, __exp)