diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-12-28 16:01:53 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-12-28 16:01:53 +0000 |
commit | b9b49b44fdc1c74ad85076bca9ff7ea0200e2214 (patch) | |
tree | 9fb0945b8576709212f84f3bbc6bd051e36b36af /sysdeps/powerpc/bits/mathinline.h | |
parent | 9756dfe161e523a5d543fb2b1f33a7e682a36342 (diff) | |
download | glibc-b9b49b44fdc1c74ad85076bca9ff7ea0200e2214.tar.gz glibc-b9b49b44fdc1c74ad85076bca9ff7ea0200e2214.tar.xz glibc-b9b49b44fdc1c74ad85076bca9ff7ea0200e2214.zip |
Update. cvs/libc-ud-971228
1997-12-28 15:08 Ulrich Drepper <drepper@cygnus.com> * sysdeps/powerpc/__longjmp.S: Define _SETJMP_H before including <bits/setjmp.h>. * sysdeps/powerpc/setjmp.S: Likewise. Patches by Matt McLean <keys@keys.got.net>. * Make-dist (sysdep_dirs): Ignore bits dirs while searching. * Makefile: Undo last patch. (distribute): Add test-installation.pl. * configure.in: Correct handling of --enable-add-ons without parameter. Correct address of WWW pages. * libc.map: Add _nl_domain_bindings. * db2/mutex/tsl_parisc.s: New file. * iconvdata/Makefile (distribute): Add jis0201.c, jis0208.c, jis0212.c, and extra-module.mk. * localedata/Makefile (distribute): New. Add all the files. * stdlib/Makefile (headers): Add inttypes.h. (routines): Add strtoimax, strtoumax, wcstoimax, and wcstoumax. * sysdeps/generic/inttypes.h: New file. * sysdeps/generic/strtoimax.c: New file. * sysdeps/generic/strtoumax.c: New file. * sysdeps/generic/wcstoimax.c: New file. * sysdeps/generic/wcstoumax.c: New file. * sysdeps/wordsize-32/Dist: Removed. * sysdeps/wordsize-32/Makefile: Removed. * sysdeps/wordsize-64/Dist: Removed. * sysdeps/wordsize-64/Makefile: Removed. * sysdeps/generic/bits/environments.h: New file. * include/limits.h: Define MB_LEN_MAX in any case to 6. The gcc header is still not correct. * io/fcntl.h [__USE_FILE_OFFSET64]: We have to use the __*64 types. * posix/unistd.h: Likewise. * sysdeps/generic/sys/mman.h: Likewise. * sysdeps/unix/sysv/linux/sys/mman.h: Likewise. * manual/arith.texi: Change definition of mul macro. * manual/math.texi: Likewise. * misc/Makefile (routines): Add mmap64. * sysdeps/generic/mmap64.c: New file. * sysdeps/unix/sysv/linux/alpha/mmap64.c: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c: New file. * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __mmap64 and mmap64 aliases to mmap. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. * sysdeps/generic/setrlimit64.c: Don't mark as stub. * nis/nss_nis/nis-hosts.c (internal_nis_gethostent_r): Pretty print. * nis(rpcsvc/nis_tags.h: Prevent warning by unknown pragma. * sysdeps/posix/mk-stdiolim.c: Generate correct file which defines FOPEN_MAX also when included by limits.h. * sysdeps/unix/sysv/linux/stdio_lim.h.in: Likewise. * sysdeps/unix/sysv/linux/Dist: Add oldsiglist.c, netax25/ax25.h, and netrom/netrom.h. * sysdeps/unix/sysv/linux/Makefile [$(subdir)=stdio-common]: Add oldsiglist to sysdep_routines, not aux. [$(subdir)=inet] (sysdep_headers): Add netax25/ax25.h, netrom/netrom.h. * sysdeps/unix/sysv/linux/bits/socket.h: Remove SOL_AX25, SOL_ATALK, and SOL_NETROM definition. * sysdeps/unix/sysv/linux/i386/Dist: Add s_pwrite64.S and s_pread64.S. * sysdeps/unix/sysv/linux/net/route.h: Pretty print. * sysdeps/unix/sysv/linux/netatalk/at.h: Pretty print. 1997-12-25 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/alpha/net/route.h: New file. * sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h: Replace sa_handler with k_sa_handler. * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __getrlimit as strong alias. Reported by a sun. * sysdeps/unix/sysv/linux/sigsuspend.c: Don't define __libc_have_rt_sigs here. * sysdeps/unix/sysv/linux/sigaction.c: Do it instead here. * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/sigpending.c: Correct comment. * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise. 1997-12-11 07:51 Geoff Keating <geoffk@ozemail.com.au> * sysdeps/powerpc/atomicity.h: New file. * sysdeps/mach/powerpc/machine-lock.h: New file. * Rules: Use -fpic to build anything that might end up in a users' shared library. * sysdeps/powerpc/s_fdim.c: New file. * sysdeps/powerpc/s_fdimf.c: New file. * sysdeps/powerpc/s_fmax.S: New file. * sysdeps/powerpc/s_fmaxf.S: New file. * sysdeps/powerpc/s_fmin.S: New file. * sysdeps/powerpc/s_fminf.S: New file. * sysdeps/powerpc/s_llrint.c: Now is for double. * sysdeps/powerpc/s_llrintf.c: New file. * sysdeps/powerpc/s_llround.c: Now is for double. * sysdeps/powerpc/s_llroundf.c: New file. * sysdeps/powerpc/s_lrint.c: Now is for double. * sysdeps/powerpc/s_lrintf.S: New file. * sysdeps/powerpc/s_lround.c: Now is for double. * sysdeps/powerpc/s_lroundf.c: New file. * sysdeps/powerpc/bits/mathinlines.h: Add inline versions of lrint, lrintf, fdim, fdimf. * sysdeps/unix/sysv/linux/powerpc/kernel_termios.h: Don't use bits/ file directly, use its parent. * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Re-instate '++' (for the third time). 1997-12-20 13:50 Richard Henderson <rth@cygnus.com> * posix/sched.h: timespec is in <time.h>. * sysdeps/unix/sysv/linux/sys/kd.h: Don't redefine _LINUX_TYPES_H.
Diffstat (limited to 'sysdeps/powerpc/bits/mathinline.h')
-rw-r--r-- | sysdeps/powerpc/bits/mathinline.h | 67 |
1 files changed, 51 insertions, 16 deletions
diff --git a/sysdeps/powerpc/bits/mathinline.h b/sysdeps/powerpc/bits/mathinline.h index 24f186adf1..fff1d64ce2 100644 --- a/sysdeps/powerpc/bits/mathinline.h +++ b/sysdeps/powerpc/bits/mathinline.h @@ -18,28 +18,14 @@ Boston, MA 02111-1307, USA. */ #ifdef __GNUC__ -#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__ - -#ifdef __cplusplus -# define __MATH_INLINE __inline -#else -# define __MATH_INLINE extern __inline -#endif - -__MATH_INLINE double __sgn1 (double __x); -__MATH_INLINE double -__sgn1 (double __x) -{ - return __x >= 0.0 ? 1.0 : -1.0; -} -#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */ #if __USE_ISOC9X && !defined _SOFT_FLOAT # define __unordered_cmp(x, y) \ (__extension__ \ ({ __typeof__(x) __x = (x); __typeof__(y) __y = (y); \ unsigned __r; \ - __asm__("fcmpu 7,%1,%2 ; mfcr %0" : "=r" (__r) : "f" (__x), "f"(__y)); \ + __asm__("fcmpu 7,%1,%2 ; mfcr %0" : "=r" (__r) : "f" (__x), "f"(__y) \ + : "cr7"); \ __r; })) # define isgreater(x, y) (__unordered_cmp (x, y) >> 2 & 1) @@ -50,4 +36,53 @@ __sgn1 (double __x) # define isunordered(x, y) (__unordered_cmp (x, y) & 1) #endif /* __USE_ISOC9X && !_SOFT_FLOAT */ +#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__ + +#ifdef __cplusplus +# define __MATH_INLINE __inline +#else +# define __MATH_INLINE extern __inline +#endif /* __cplusplus */ + +#ifdef __USE_ISOC9X +__MATH_INLINE long int lrint (double __x); +__MATH_INLINE long int +lrint (double __x) +{ + union { + double __d; + long int __ll[2]; + } __u; + asm ("fctiw %0,%1" : "=f"(__u.__d) : "f"(__x)); + return __u.__ll[1]; +} + +__MATH_INLINE long int lrintf (float __x); +__MATH_INLINE long int +lrintf (float __x) +{ + union { + double __d; + long int __ll[2]; + } __u; + asm ("fctiw %0,%1" : "=f"(__u.__d) : "f"(__x)); + return __u.__ll[1]; +} + +__MATH_INLINE double fdim (double __x, double __y); +__MATH_INLINE double +fdim (double __x, double __y) +{ + return __x < __y ? 0 : __x - __y; +} + +__MATH_INLINE float fdimf (float __x, float __y); +__MATH_INLINE float +fdimf (float __x, float __y) +{ + return __x < __y ? 0 : __x - __y; +} + +#endif /* __USE_ISOC9X */ +#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */ #endif /* __GNUC__ */ |