From 1ea89a402d892b68b193e2e4390d8eb33ed686e7 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 13 Oct 1997 01:27:24 +0000 Subject: Update. 1997-10-13 03:14 Ulrich Drepper * libc.map: Move _IO_fopen, fopen, _IO_stdin_, _IO_stdout_, _IO_stderr_, _IO_list_all, and freopen to GLIBC_2.1 version. * include/libc-symbol.h: Define define_symbol. * libio/Makefile [$(versioning)=yes] (routines): Add oldiofopen and oldfreopen. [$(versioning)=yes] (aux): Add oldfileops and oldstdfiles. * libio/fileops.c: Use _IO_FILE_complete when accessing _offset field. * libio/freopen.c: Use versioning. * libio/iofopen.c: Likewise. Generate object of type _IO_FILE_complete. * libio/iofopen64.c: Generate object of type _IO_FILE_complete. * libio/iolibio.h: Declare _IO_{old,new}_fopen and __{old,new}_freopen. Define _IO_old_freopen. * libio/libio.h: Remove _offset field from _IO_FILE. Rename _unused2 field to _old_offset. Declare _IO_std*_ streams as of type _IO_FILE_complete. * libio/libioP.h: Define _IO_FILE_complete. Declare callbacks for old fileops implementation. * libio/stdfile.c: Define standard stream of type _IO_FILE_complete. * libio/stdio.c: Correctly address FILE part of standard streams. * libio/oldfileops.c: New file. * libio/oldfreopen.c: New file. * libio/oldiofopen.c: New file. * libio/oldstdfiles.c: New file. * sysdeps/i386/fpu/bits/mathinline.h: Define fma optimization. * sysdeps/libm-i387/e_scalb.S: Make sure code gets into .text section. * sysdeps/libm-i387/e_scalbl.S: Likewise. * sysdeps/libm-i387/s_fma.S: Fix typo. * sysdeps/libm-i387/s_fmaf.S: Likewise. * sysdeps/libm-i387/s_fmal.S: Likewise. 1997-10-12 20:14 Zack Weinberg * sysdeps/stub/getsid.c: Add a stub_warning. * sysdeps/stub/mmap.c: Likewise. * sysdeps/stub/munmap.c: Likewise. * sysdeps/libm-ieee754/s_fma.c: New file. * sysdeps/libm-ieee754/s_fmaf.c: New file. * sysdeps/libm-ieee754/s_fmal.c: New file. * sysdeps/libm-ieee754/s_llrintf.c: New file. * sysdeps/libm-ieee754/s_llrintl.c: New file. * sysdeps/libm-ieee754/s_lrintf.c: New file. * sysdeps/libm-ieee754/s_lrintl.c: New file. --- sysdeps/i386/fpu/bits/mathinline.h | 34 ++++++++++++++++++++++------------ sysdeps/libm-i387/e_scalb.S | 2 +- sysdeps/libm-i387/e_scalbl.S | 2 +- sysdeps/libm-i387/s_fma.S | 2 +- sysdeps/libm-i387/s_fmaf.S | 2 +- sysdeps/libm-i387/s_fmal.S | 2 +- sysdeps/stub/getsid.c | 1 + sysdeps/stub/mmap.c | 1 + sysdeps/stub/munmap.c | 1 + 9 files changed, 30 insertions(+), 17 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/i386/fpu/bits/mathinline.h b/sysdeps/i386/fpu/bits/mathinline.h index edb6ee01d7..482b47e3b3 100644 --- a/sysdeps/i386/fpu/bits/mathinline.h +++ b/sysdeps/i386/fpu/bits/mathinline.h @@ -125,9 +125,21 @@ __inline_mathcode_ (double, func, arg, code) \ __inline_mathcode_ (float, __CONCAT(func,f), arg, code) \ __inline_mathcode_ (long double, __CONCAT(func,l), arg, code) +# define __inline_mathcode2(func, arg1, arg2, code) \ + __inline_mathcode2_ (double, func, arg1, arg2, code) \ + __inline_mathcode2_ (float, __CONCAT(func,f), arg1, arg2, code) \ + __inline_mathcode2_ (long double, __CONCAT(func,l), arg1, arg2, code) +# define __inline_mathcode3(func, arg1, arg2, arg3, code) \ + __inline_mathcode3_ (double, func, arg1, arg2, arg3, code) \ + __inline_mathcode3_ (float, __CONCAT(func,f), arg1, arg2, arg3, code) \ + __inline_mathcode3_ (long double, __CONCAT(func,l), arg1, arg2, arg3, code) #else # define __inline_mathcode(func, arg, code) \ - __inline_mathcode_ (double, func, arg, code) + __inline_mathcode_ (double, func, (arg), code) +# define __inline_mathcode2(func, arg1, arg2, code) \ + __inline_mathcode2_ (double, func, arg1, arg2, code) +# define __inline_mathcode3(func, arg1, arg2, arg3, code) \ + __inline_mathcode3_ (double, func, arg1, arg2, arg3, code) #endif #define __inline_mathcode_(float_type, func, arg, code) \ @@ -137,17 +149,6 @@ code; \ } - -#if defined __USE_MISC || defined __USE_ISOC9X -# define __inline_mathcode2(func, arg1, arg2, code) \ - __inline_mathcode2_ (double, func, arg1, arg2, code) \ - __inline_mathcode2_ (float, __CONCAT(func,f), arg1, arg2, code) \ - __inline_mathcode2_ (long double, __CONCAT(func,l), arg1, arg2, code) -#else -# define __inline_mathcode2(func, arg1, arg2, code) \ - __inline_mathcode2_ (double, func, arg1, arg2, code) -#endif - #define __inline_mathcode2_(float_type, func, arg1, arg2, code) \ __MATH_INLINE float_type func (float_type, float_type); \ __MATH_INLINE float_type func (float_type arg1, float_type arg2) \ @@ -155,6 +156,14 @@ code; \ } +#define __inline_mathcode3_(float_type, func, arg1, arg2, arg3, code) \ + __MATH_INLINE float_type func (float_type, float_type, float_type); \ + __MATH_INLINE float_type func (float_type arg1, float_type arg2, \ + float_type arg3) \ + { \ + code; \ + } + /* Miscellaneous functions */ @@ -493,6 +502,7 @@ ldexpl (long double __x, int __y) __ldexp_code; } +__inline_mathcode3 (fma, __x, __y, __z, return (__x * __y) + __z) #endif diff --git a/sysdeps/libm-i387/e_scalb.S b/sysdeps/libm-i387/e_scalb.S index 790f1c1d56..b4c23ca595 100644 --- a/sysdeps/libm-i387/e_scalb.S +++ b/sysdeps/libm-i387/e_scalb.S @@ -34,7 +34,7 @@ minus_zero: #define MOX(op,x,f) op(,x,f) #endif - + .text ENTRY(__ieee754_scalb) fldl 12(%esp) fxam diff --git a/sysdeps/libm-i387/e_scalbl.S b/sysdeps/libm-i387/e_scalbl.S index e272614acf..33eb7323dc 100644 --- a/sysdeps/libm-i387/e_scalbl.S +++ b/sysdeps/libm-i387/e_scalbl.S @@ -36,7 +36,7 @@ minus_zero: #define MOX(op,x,f) op(,x,f) #endif - + .text ENTRY(__ieee754_scalbl) fldt 16(%esp) fxam diff --git a/sysdeps/libm-i387/s_fma.S b/sysdeps/libm-i387/s_fma.S index deeac574a7..b472c70a0d 100644 --- a/sysdeps/libm-i387/s_fma.S +++ b/sysdeps/libm-i387/s_fma.S @@ -26,7 +26,7 @@ ENTRY(__fma) fldl 12(%esp) // x : y fmulp // x * y fldl 20(%esp) // z : x * y - fmulp // (x * y) + z + faddp // (x * y) + z ret END(__fma) weak_alias (__fma, fma) diff --git a/sysdeps/libm-i387/s_fmaf.S b/sysdeps/libm-i387/s_fmaf.S index 726c49d12c..17939a819c 100644 --- a/sysdeps/libm-i387/s_fmaf.S +++ b/sysdeps/libm-i387/s_fmaf.S @@ -26,7 +26,7 @@ ENTRY(__fmaf) flds 8(%esp) // x : y fmulp // x * y flds 12(%esp) // z : x * y - fmulp // (x * y) + z + faddp // (x * y) + z ret END(__fmaf) weak_alias (__fmaf, fmaf) diff --git a/sysdeps/libm-i387/s_fmal.S b/sysdeps/libm-i387/s_fmal.S index be8b557902..c15fca8dab 100644 --- a/sysdeps/libm-i387/s_fmal.S +++ b/sysdeps/libm-i387/s_fmal.S @@ -26,7 +26,7 @@ ENTRY(__fmal) fldt 16(%esp) // x : y fmulp // x * y fldt 28(%esp) // z : x * y - fmulp // (x * y) + z + faddp // (x * y) + z ret END(__fmal) weak_alias (__fmal, fmal) diff --git a/sysdeps/stub/getsid.c b/sysdeps/stub/getsid.c index 8d2af8b070..5c65311ce0 100644 --- a/sysdeps/stub/getsid.c +++ b/sysdeps/stub/getsid.c @@ -27,3 +27,4 @@ getsid (pid_t pid) __set_errno (ENOSYS); return (pid_t) -1; } +stub_warning (getsid) diff --git a/sysdeps/stub/mmap.c b/sysdeps/stub/mmap.c index 6b557764ee..02fb8d780d 100644 --- a/sysdeps/stub/mmap.c +++ b/sysdeps/stub/mmap.c @@ -36,4 +36,5 @@ __mmap (caddr_t addr, size_t len, int prot, int flags, int fd, off_t offset) return (caddr_t) -1; } +stub_warning (mmap) weak_alias (__mmap, mmap) diff --git a/sysdeps/stub/munmap.c b/sysdeps/stub/munmap.c index 9c96042c26..4802a58f7f 100644 --- a/sysdeps/stub/munmap.c +++ b/sysdeps/stub/munmap.c @@ -30,4 +30,5 @@ __munmap (caddr_t addr, size_t len) return -1; } +stub_warning (munmap) weak_alias (__munmap, munmap) -- cgit v1.2.3