Corinna Vinschen
fbace81684
Import correctly working strtold from David M. Gay.
...
* libc/stdlib/Makefile.am (GENERAL_SOURCES): Add strtodg.c and
strtorx.c.
* libc/stdlib/Makefile.in: Regenerate.
* libc/stdlib/strtodg.c: New file implementing generic string to long
double conversion.
* libc/stdlib/strtorx.c: New file, implementing IEEE format string to
long double conversion.
* libc/stdlib/mprec.h (_strtodg_r): Declare.
(_strtorx_r): Declare.
* libc/stdlib/gdtoa.h (__UShort): Define.
* libc/stdlib/strtold.c (__flt_rounds): Define for i386 and x86_64
target.
(FLT_ROUNDS): Define, as 0 on platforms missing a __flt_rounds
function.
(_strtold_r): Converted from strtold. Call _strtorx_r on targets
supporting distinct long doubles.
(strtold): Just call _strtold_r.
* libc/include/stdlib.h (_strtold_r): Declare.
* libc/stdlib/ldtoa.c (_strtold): Comment out. Explain why.
* libc/stdio/vfscanf.c (__SVFSCANF_R): Call _strtold_r instead of
_strtold.
* libc/machine/powerpc/vfscanf.c (__svfscanf_r): Ditto.
* common.din (strtold): Drop redirection to _strtold.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-11-20 18:14:58 +01:00
Corinna Vinschen
fcc2dcbb21
ldtoa.c: Reindent to GNU style
...
* libc/stdlib/ldtoa.c: Convert to GNU style so as not to get crazy
reading the code.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-11-19 17:09:58 +01:00
Jeff Johnston
b7f5fb36f1
2014-03-21 Maciej W. Rozycki <macro@codesourcery.com>
...
* libc/stdlib/gd_qnan.h (f_QNAN, d_QNAN0, d_QNAN1): Add MIPS
versions.
(ld_QNAN0, ld_QNAN1, ld_QNAN2, ld_QNAN3): Don't define for MIPS.
(ldus_QNAN0, ldus_QNAN1, ldus_QNAN2, ldus_QNAN3, ldus_QNAN4):
Likewise.
* libc/stdlib/ldtoa.c (nan113, nan64, nan53, nan24): Add MIPS
versions.
(enan): Handle legacy MIPS payloads.
* libm/common/s_nan.c (nan): Use __builtin_nan if supported by
the compiler.
* libm/common/sf_nan.c (nanf): Likewise.
2014-03-21 21:27:29 +00:00
Corinna Vinschen
e9c0122ec0
* libc/stdlib/gdtoa-gethex.c (__hexdig): Constify.
...
(hexdig_init): Remove.
(__hexdig_fun): New function.
hexdig_init, added __hexdig_fun
(gethex): Call __get_hexdig macro rather than hexdig.
* libc/stdlib/gdtoa-hexnan.c (hexnan): Constify fpi argument.
Call __get_hexdig macro rather than hexdig.
* libc/stdlib/ldtoa.c: Throughout constify functions arguments where
required by constifying the following arrays.
(ezero): Constify.
(eone): Constify.
(ermsg): Constify.
(etens): Constify.
(emtens): Constify.
(nan113): Constify.
(nan64): Constify.
(nan53): Constify.
(nan24): Constify.
* libc/stdlib/mprec.h (__get_hexdig): Define.
(gethex): Constify args in declaration where appropriate.
(hexnan): Ditto.
(hexdig_init): Remove declaration.
(__hexdig_fun): Declare.
* libc/stdlib/strtod.c (fpi): Constify.
(fpinan): Constify.
2013-06-10 15:27:43 +00:00
Jeff Johnston
7dd0c33097
2008-12-11 Craig Howland <howland@LGSInnovations.com>
...
* libc/include/sys/lock.h: Add void cast to avoid "statement has no
effect" warnings from gcc.
* libc/include/sys/stdio.h: Ditto.
* libc/include/sys/time.h: Correct gettimeofday() prototype.
* libc/stdlib/__exp10.c: Add #include "std.h" for function prototype.
* libc/stdlib/__ten_mu.c: Ditto.
* libc/stdlib/std.h: Correct __exp10's ANSI prototype.
* libc/stdlib/ldtoa.c: Change eiisinf definition to ANSI form. (Are
already others in file without _ansi method, so did not bother.)
* libc/stdlib/system.c: Use _ansi forms for function prototypes and
definitions.
* libc/time/mktime.c: Ditto.
* libc/misc/__dprintf.c: Ditto.
* libc/include/stdio.h: Add function prototypes for _fgetc_r,
_fgetpos_r, _fsetpos_r, _freopen_r, _rewind_r, freopen64, _freopen64_r,
_funopen_r, and _fopencookie_r.
* libc/include/reent.h: Add function prototype for _stat64_r, align
_execve_r prototype with POSIX definition for execve.
* libc/reent/execr.c: Align function prototype with POSIX definition.
* libc/stdio/asniprintf.c: Add #include "local.h".
* libc/stdio/vasniprintf.c: Ditto.
* libc/stdio/fread.c: Remove unused variable newcount.
* libc/stdio/local.h: Add function prototype for __sccl.
* libc/stdio/open_memstream.c: Remove unused variable flags.
* libc/stdio/vfscanf.c: Proper prototyping for ccfn, remove prototype
for __sccl since now in local.h.
* libc/string/memcpy.c: Add #include <string.h> (for real and for
traditional synopsis), remove extraneous stddef.h and limits.h.
* libc/syscalls/sysclose.c: Add #include <unistd.h>.
* libc/syscalls/sysfork.c: Ditto.
* libc/syscalls/sysgetpid.c: Ditto.
* libc/syscalls/sysexecve.c: Add #include <unistd.h>, align function
prototype with POSIX definition.
* libc/syscalls/sysfstat.c: Add #include <sys/stat.h>.
* libc/syscalls/sysgettod.c: Correct sys/times.h to sys/time.h.
* libc/syscalls/syskill.c: Add #include <signal.h>.
* libc/syscalls/syslink.c: Add #include <unistd.h>, fix prototype.
* libc/syscalls/sysunlink.c: Ditto.
* libc/syscalls/sysstat.c: Add #include <sys/stat.h>, fix prototype.
* libc/syscalls/syswait.c: Add #include <sys/wait.h>, fix prototype.
2008-12-11 17:27:56 +00:00
Jeff Johnston
0d2597f5a0
2008-10-06 Eric Blake <ebb9@byu.net>
...
* libc/stdlib/ldtoa.c (etoasc): Fix rounding to even when fraction
is 0.5 or 0.75.
2008-10-06 19:47:06 +00:00
Jeff Johnston
1eeaeab855
2007-06-06 Christian Groessler <chris@groessler.org>
...
* libc/stdlib/ldtoa (_ldcheck): Make sure the setting of
rnd is done after the last local variable declaration.
2007-06-06 Jeff Johnston <jjohnstn@redhat.com>
* libc/stdlib/mprec.h[Just_16]: Make sure that Pack_16 is defined.
2007-06-06 19:24:28 +00:00
Eric Blake
895d76fed6
* libc/include/math.h (INFINITY, NAN, FP_ILOGB0, FP_ILOGBNAN)
...
(MATH_ERRNO, MATH_ERREXCEPT, math_errhandling): Add macros
required by POSIX.
* libc/stdlib/ldtoa.c (USE_INFINITY): Rename from INFINITY, to
avoid clash with <math.h>.
2007-05-16 19:59:40 +00:00
Jeff Johnston
68cdbb18da
2005-06-16 Christopher Faylor <cgf@timesys.com>
...
* libc/stdio/vfprintf.c (cvt): Don't rely on pointer aliasing to
determine characteristics of long double. Use a union instead.
* ldtoa.c (_ldtoa_r): Ditto.
(_ldcheck): Ditto.
(_strtold): Ditto.
(union uconv): New union.
2005-06-16 19:14:01 +00:00
Jeff Johnston
76a7df5256
2003-10-20 Bob Wilson <bob.wilson@acm.org>
...
* libc/locale/locale.c: Use double quotes in code.
* libc/locale/locale.tex: Likewise.
* libc/libc.texinfo: Hyphenate "floating-point".
* libc/machine/necv70/necv70.tex: Likewise.
* libc/stdio/sprintf.c: Likewise.
* libc/stdio/sscanf.c: Likewise.
* libc/stdlib/atof.c: Likewise.
* libc/stdlib/ldtoa.c: Fix comment typo.
* libc/stdlib/div.c: Use @ifnottex instead of @ifinfo.
* libc/stdlib/ldiv.c: Likewise.
* libm/common/s_expm1.c: Likewise.
* libm/common/s_ilogb.c: Hyphenate "floating-point". Use "nonzero".
* libm/common/s_infinity: Hyphenate "double- and single-precision".
* libm/common/s_nan.c: Likewise. Also correct the FUNCTION summary.
* libm/common/s_nextafter.c: Fix typo. Hyphenate "double-precision"
and "floating-point".
* libm/common/s_scalbn.c: Correct the FUNCTION summary.
* libm/math/e_pow.c: Fix comment typo.
* libm/math/math.tex: Hyphenate "single-precision" and "floating-point".
* libm/math/s_asinh.c: Use @ifnottex instead of @ifinfo.
* libm/math/s_atan.c: Likewise.
* libm/math/s_frexp.c: Likewise. Also use "nonzero".
* libm/math/s_isnan.c: Hyphenate "single-precision" and
"floating-point". Use "nonzero".
* libm/math/s_ldexp.c: Use @ifnottex instead of @ifinfo.
* libm/math/w_acos.c: Likewise.
* libm/math/w_acosh.c: Likewise.
* libm/math/w_asin.c: Likewise.
* libm/math/w_atan2.c: Likewise.
* libm/math/w_atanh.c: Likewise.
* libm/math/w_cosh.c: Likewise.
* libm/math/w_exp.c: Likewise.
* libm/math/w_exp2.c: Likewise. Add missing @end and missing @tex
version of 2^x in the description.
* libm/math/w_fmod.c: Use @ifnottex instead of @ifinfo.
* libm/math/w_gamma.c: Likewise.
* libm/math/w_hypot.c: Likewise.
* libm/math/w_j0.c: Likewise.
* libm/math/w_sinh.c: Likewise.
* libm/math/w_pow.c: Replace "exp1.0nt" with "exponent".
* libm/mathfp/mathfp.tex: Hyphenate "single-precision" and
"floating-point".
* libm/mathfp/e_acosh.c: Use @ifnottex instead of @ifinfo.
* libm/mathfp/e_atanh.c: Likewise.
* libm/mathfp/e_hypot.c: Likewise.
* libm/mathfp/er_lgamma.c: Likewise.
* libm/mathfp/s_acos.c: Likewise.
* libm/mathfp/s_asine.c: Likewise.
* libm/mathfp/s_asinh.c: Likewise.
* libm/mathfp/s_atan.c: Likewise.
* libm/mathfp/s_atan2.c: Likewise.
* libm/mathfp/s_atangent.c: Likewise.
* libm/mathfp/s_cosh.c: Likewise.
* libm/mathfp/s_exp.c: Likewise.
* libm/mathfp/s_fmod.c: Likewise.
* libm/mathfp/s_frexp.c: Likewise. Also use "nonzero".
* libm/mathfp/s_isnan.c: Hyphenate "single-precision" and
"floating-point". Use "nonzero".
* libm/math/s_pow.c: Replace "exp1.0nt" with "exponent".
* libm/mathfp/s_ldexp.c: Use @ifnottex instead of @ifinfo.
* libm/mathfp/s_sineh.c: Likewise.
* libm/mathfp/w_jn.c: Likewise.
2003-10-20 18:46:38 +00:00
Jeff Johnston
ad36f7d19a
2003-02-03 Jeff Johnston <jjohnstn@redhat.com>
...
* libc/stdlib/ldtoa.c (_ldtoa_r): Fix code to allocate the format
buffer based on the precision, after we have processed the input value
in a local buffer and know its relative magnitude.
2003-02-03 21:29:45 +00:00
Jeff Johnston
d4c3a750e7
2003-01-07 Jeff Johnston <jjohnstn@redhat.com>
...
* configure.host: Support long double I/O for x86-linux.
* libc/stdlib/ldtoa.c (_ldtoa_r): Fix code to allocate a buffer
large enough to hold formatted result.
* libc/machine/powerpc/simdldtoa.c (_simdldtoa_r): Ditto.
2003-01-07 19:52:27 +00:00
Jeff Johnston
944772c70a
2002-11-12 Jeff Johnston <jjohnstn@redhat.com>
...
* libc/stdlib/ldtoa.c (e64toe): When checking the exponent
for inf/nan, make sure that the check ignores the sign bit.
2002-11-12 21:47:53 +00:00
Jeff Johnston
27478365a2
2002-02-05 Manik Raina <manik@cisco.com>
...
* libc/misc/dprintf (parse_number): #if 0 unused function.
* libc/stdlib/ldtoa.c (_ldcheck): Remove unused local variables
s, p, k, and outstr.
* libc/stdlib/dtoa.c (_dtoa_r): Initialize mlo.
2002-02-05 17:14:35 +00:00
Matthew Green
8195aff714
* implement a new `struct _reent' that is significantly smaller. use this
...
if _REENT_SMALL is defined in config.h. define this for xstormy16.
2002-02-03 09:24:18 +00:00
Jeff Johnston
b6182a09dd
2000-12-13 Jeff Johnston <jjohnstn@redhat.com>
...
* libc/stdlib/ldtoa.c (_ldcheck): New routine
that categorizes a long double as NaN, Infinity, or other.
* libc/stdio/vfprintf.c [WANT_IO_LONG_DBL](_VFPRINTF_R): Removed
isinfl and isnanl static routines which were i386-specific. Changed
calls to the two removed routines to a single _ldcheck call.
* libc/stdio/vfieeefp.h (ldieee): Fixed missing semi-colons.
2000-12-14 00:25:06 +00:00
Jeff Johnston
2005ab6be7
2000-12-07 Jeff Johnston <jjohnstn@redhat.com>
...
* libc/stdlib/ldtoa.c: Removed include of alloca.h.
Also removed \r's.
(asctoeg): Replaced alloca call with stack array and malloc
when storage exceeds reasonable limit.
(e53toe): Fixed einfin calls missing ldp parameter.
(eiisinf): Hide behind check for LDBL_MANT_DIG == 64.
2000-12-07 23:38:05 +00:00
Jeff Johnston
6bdac416e9
2000-12-06 Jeff Johnston <jjohnstn@redhat.com>
...
* libc/stdlib/Makefile.am: Added ldtoa.c to list of sources.
* libc/stdlib/Makefile.in: Regenerated.
* libc/stdio/floatio.h: Added suitable MAXEXP for long double.
* libc/stdio/vfieeefp.h: Added long double bit structures.
* libc/stdio/vfprintf.c[WANT_IO_LONG_DBL]: Added long double support.
[WANT_IO_LONG_DBL](isinfl, isnanl): New static long double routines.
(exponent): Changed expbuf to reasonable maximum instead of MAXEXP.
* libc/stdio/vfscanf.c[WANT_IO_LONG_DBL]: Added long double support.
* libc/stdlib/ldtoa.c: New file containing _ldtoa_r and
_strtold routines used for conversions between character
and long double.
2000-12-06 23:50:11 +00:00