update from main archive 960830

Fri Aug 30 19:55:27 1996  Ulrich Drepper  <drepper@cygnus.com>

	* libio/genops.c: Make _cleanup an alias of _IO_cleanup.
	Reported by Erik Troan.

Fri Aug 30 15:40:04 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/Dist: Add sys/procfs.h and
 	sys/sysmacros.h.  Reported by Curtiss <1CMC3466@IBM.MTSAC.EDU>.

Fri Aug 30 13:53:32 1996  Andreas Jaeger  <aj@arthur.pfalz.de>

	* sysdeps/unix/mman/syscalls.list: `mmap' has 6 arguments, not 5.

Fri Aug 30 13:01:10 1996  NIIBE Yutaka  <gniibe@mri.co.jp>

	* sysdeps/i386/fpu/__math.h (tan): Pop 1.0 in ST to get
	real result.

Fri Aug 30 03:33:33 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/libm-ieee754/s_cbrtl.c: New file.  `long double'
	implementation.

	* sysdeps/unix/sysv/linux/i386/Dist: Add clone.S.
This commit is contained in:
Ulrich Drepper 1996-08-31 00:13:23 +00:00
parent 924840c542
commit adfa20781b
9 changed files with 176 additions and 15 deletions

View File

@ -1,3 +1,27 @@
Fri Aug 30 19:55:27 1996 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Make _cleanup an alias of _IO_cleanup.
Reported by Erik Troan.
Fri Aug 30 15:40:04 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/Dist: Add sys/procfs.h and
sys/sysmacros.h. Reported by Curtiss <1CMC3466@IBM.MTSAC.EDU>.
Fri Aug 30 13:53:32 1996 Andreas Jaeger <aj@arthur.pfalz.de>
* sysdeps/unix/mman/syscalls.list: `mmap' has 6 arguments, not 5.
Fri Aug 30 13:01:10 1996 NIIBE Yutaka <gniibe@mri.co.jp>
* sysdeps/i386/fpu/__math.h (tan): Pop 1.0 in ST to get
real result.
Fri Aug 30 03:33:33 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/libm-ieee754/s_cbrtl.c: New file. `long double'
implementation.
Fri Aug 30 13:39:21 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* Makerules (BUILD_CFLAGS): Use @(common-objpfx) for config.h, not
@ -23,7 +47,7 @@ Fri Aug 30 13:39:21 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
Fri Aug 30 01:26:44 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/Dist: Add close.S.
* sysdeps/unix/sysv/linux/i386/Dist: Add clone.S.
* sysdeps/unix/sysv/linux/m68k/Dist: Likewise.
* sysdeps/unix/sysv/linux/alpha/Dist: Likewise.

View File

@ -25,7 +25,6 @@ k_sinl.c
k_tanl.c
s_atanl.c
s_cbrtl.c
s_erfl.c
s_expm1l.c
s_log1pl.c

View File

@ -5,7 +5,6 @@
#undef _EXTERN_INLINE
#define _EXTERN_INLINE /* Define the real function. */
#include "hurd.h"
#include "hurd/fd.h"
#include "hurd/signal.h"
#include "hurd/userlink.h"

View File

@ -1,4 +1,4 @@
/*
/*
Copyright (C) 1993, 1995 Free Software Foundation
This file is part of the GNU IO Library. This library is free
@ -503,7 +503,7 @@ DEFUN(_IO_default_finish, (fp),
#ifdef _IO_MTSAFE_IO
_IO_mutex_destroy (fp->_lock);
#endif
_IO_un_link(fp);
}
@ -519,7 +519,7 @@ DEFUN(_IO_sputbackc, (fp, c),
register _IO_FILE *fp AND int c)
{
int result;
if (fp->_IO_read_ptr > fp->_IO_read_base
&& (unsigned char)fp->_IO_read_ptr[-1] == (unsigned char)c)
{
@ -540,7 +540,7 @@ DEFUN(_IO_sungetc, (fp),
register _IO_FILE *fp)
{
int result;
if (fp->_IO_read_ptr > fp->_IO_read_base)
{
fp->_IO_read_ptr--;
@ -591,7 +591,7 @@ int
DEFUN(_IO_get_column, (fp),
register _IO_FILE *fp)
{
if (fp->_cur_column)
if (fp->_cur_column)
return _IO_adjust_column(fp->_cur_column - 1,
fp->_IO_write_base,
fp->_IO_write_ptr - fp->_IO_write_base);
@ -638,7 +638,7 @@ DEFUN_VOID(_IO_cleanup)
So it is possible that other static destructord might want to
write to cout - and they're supposed to be able to do so.
The following will make the standard streambufs be unbuffered,
The following will make the standard streambufs be unbuffered,
which forces any output from late destructors to be written out. */
_IO_unbuffer_all ();
}
@ -654,7 +654,7 @@ DEFUN(_IO_init_marker, (marker, fp),
marker->_pos = fp->_IO_read_ptr - fp->_IO_read_end;
else
marker->_pos = fp->_IO_read_ptr - fp->_IO_read_base;
/* Should perhaps sort the chain? */
marker->_next = fp->_markers;
fp->_markers = marker;
@ -775,7 +775,7 @@ DEFUN(_IO_default_pbackfail, (fp, c),
/* Need to handle a filebuf in write mode (switch to read mode). FIXME!*/
if (_IO_have_backup(fp) && !_IO_in_backup(fp))
_IO_switch_to_backup_area(fp);
if (!_IO_have_backup(fp))
{
/* No backup buffer: allocate one. */
@ -852,8 +852,12 @@ DEFUN(_IO_default_write, (fp, data, n),
struct __io_defs {
__io_defs() { }
~__io_defs() { _IO_cleanup(); }
};
};
__io_defs io_defs__;
#endif
#endif /* TODO */
#ifdef weak_alias
weak_alias (_IO_cleanup, _cleanup)
#endif

View File

@ -204,6 +204,15 @@ do { \
(d) = iw_u.value; \
} while (0)
/* Get the more significant 32 bits of a long double mantissa. */
#define GET_LDOUBLE_MSW(v,d) \
do { \
ieee_long_double_shape_type sh_u; \
sh_u.value = (d); \
(v) = sh_u.parts.msw; \
} while (0)
/* Set the more significant 32 bits of a long double mantissa from an int. */
#define SET_LDOUBLE_MSW(d,v) \

View File

@ -1,6 +1,6 @@
/* Inline math functions for i387.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Contributed by John C. Bowman <bowman@hagar.ph.utexas.edu>
Contributed by John C. Bowman <bowman@ipp-garching.mpg.de>
This file is part of the GNU C Library.
@ -119,7 +119,8 @@ tan (double __x)
{
register double __value;
__asm __volatile__
("fptan"
("fptan\n\t"
"fincstp"
: "=t" (__value) : "0" (__x));
return __value;

View File

@ -0,0 +1,123 @@
/* s_cbrtl.c -- long double version of s_cbrt.c.
* Conversion to long double by Ulrich Drepper,
* Cygnus Support, drepper@cygnus.com.
*/
/*
* ====================================================
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
* software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
#if defined(LIBM_SCCS) && !defined(lint)
static char rcsid[] = "$NetBSD: $";
#endif
#include "math.h"
#include "math_private.h"
/* cbrtl(x)
* Return cube root of x
*/
#ifdef __STDC__
static const u_int32_t
#else
static u_int32_t
#endif
B1_EXP = 10921, /* = Int(B1) */
B1_MANT = 0x7bc4b064, /* = Int(1.0-0.03306235651)*2**31 */
B2_EXP = 10900,
B2_MANT = 0x7bc4b064; /* = Int(1.0-0.03306235651)*2**31 */
#ifdef __STDC__
static const long double
#else
static long double
#endif
C = 5.42857142857142815906e-01L, /* 19/35 */
D = -7.05306122448979611050e-01L, /* -864/1225 */
E = 1.41428571428571436819e+00L, /* 99/70 */
F = 1.60714285714285720630e+00L, /* 45/28 */
G = 3.57142857142857150787e-01L; /* 5/14 */
#ifdef __STDC__
long double __cbrtl(long double x)
#else
long double __cbrtl(x)
long double x;
#endif
{
int32_t hx;
long double r,s,t=0.0,w;
u_int32_t sign, se, x0, x1;
GET_LDOUBLE_WORDS(se,x0,x1,x);
sign=se&0x8000; /* sign= sign(x) */
se ^= sign;
if(se==0x7fff) return(x+x); /* cbrt(NaN,INF) is itself */
if((se|x0|x1)==0)
return(x); /* cbrt(0) is itself */
SET_LDOUBLE_EXP(x,se); /* x <- |x| */
/* XXX I don't know whether the numbers for correct are correct. The
precalculation is extended from 20 bits to 32 bits. This hopefully
gives us the needed bits to get us still along with one iteration
step. */
/* rough cbrt to 5 bits */
if(se==0) /* subnormal number */
{
u_int64_t xxl;
u_int32_t set,t0,t1;
SET_LDOUBLE_EXP(t,0x4035); /* set t= 2**54 */
SET_LDOUBLE_MSW(t,0x80000000);
t*=x;
GET_LDOUBLE_WORDS(set,t0,t1,t);
xxl = ((u_int64_t) set) << 32 | t0;
xxl /= 3;
xxl += B2_EXP << 16 | B2_MANT;
t0 = xxl & 0xffffffffu;
set = xxl >> 32;
SET_LDOUBLE_WORDS(t,set,t0,t1);
}
else
{
u_int64_t xxl = ((u_int64_t) se) << 32 | x0;
xxl /= 3;
xxl += B1_EXP << 16 | B1_MANT;
SET_LDOUBLE_MSW(t,xxl&0xffffffffu);
xxl >>= 32;
SET_LDOUBLE_EXP(t,xxl);
}
/* new cbrt to 23 bits, may be implemented in single precision */
r=t*t/x;
s=C+r*t;
t*=G+F/(s+E+D/s);
/* chopped to 32 bits and make it larger than cbrt(x) */
GET_LDOUBLE_WORDS(se,x0,x1,t);
SET_LDOUBLE_WORDS(t,se,x0+1,0);
/* one step newton iteration to 53 bits with error less than 0.667 ulps */
s=t*t; /* t*t is exact */
r=x/s;
w=t+t;
r=(r-t)/(w+r); /* r-s is exact */
t=t+t*r;
/* retore the sign bit */
GET_LDOUBLE_EXP(se,t);
SET_LDOUBLE_EXP(t,se|sign);
return(t);
}
weak_alias (__cbrtl, cbrtl)

View File

@ -1,7 +1,7 @@
# File name Caller Syscall name # args Strong name Weak names
madvise - madvise 3 madvise
mmap - mmap 5 __mmap mmap
mmap - mmap 6 __mmap mmap
mprotect - mprotect 3 __mprotect mprotect
msync - msync 2 msync
munmap - munmap 2 __munmap munmap

View File

@ -7,10 +7,12 @@ sys/kdaemon.h
sys/klog.h
sys/module.h
sys/mount.h
sys/procfs.h
sys/quota.h
sys/socketcall.h
sys/sysctl.h
sys/sysinfo.h
sys/sysmacros.h
sys/timex.h
sys/user.h
termio.h