diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-05-28 06:56:51 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-05-28 06:56:51 +0000 |
commit | 3dbfd8117c2d109b63e5bec1e4952aab40d19660 (patch) | |
tree | 056bec6d4cb34ebd2024c2b28443aed49f4a6c52 | |
parent | 44809672d3d71c8fc2d779e1d7ddbd5ca5a02f88 (diff) | |
download | glibc-3dbfd8117c2d109b63e5bec1e4952aab40d19660.tar.gz glibc-3dbfd8117c2d109b63e5bec1e4952aab40d19660.tar.xz glibc-3dbfd8117c2d109b63e5bec1e4952aab40d19660.zip |
Update.
2004-05-27 Jakub Jelinek <jakub@redhat.com> * sysdeps/i386/fpu/bits/mathinline.h (__expm1_code): Define using __builtin_expm1l for GCC 3.5+. (__expl): Define using __builtin_expl for GCC 3.4+. (exp, expf, expl): Don't define for GCC 3.4+. (tan, tanf, tanl): Don't define for GCC 3.5+. (__atan2l): Define using __builtin_atan2l for GCC 3.4+. (atan2, atan2f, atan2l): Don't define for GCC 3.4+ or !__FAST_MATH__. (fmod, fmodf, fmodl): Don't define for GCC 3.5+ or !__FAST_MATH__. (fabsf, fabsl): Only provide if __USE_MISC or __USE_ISOC99. (sin, sinf, sinl, cos, cosf, cosl, log, logf, logl): Don't define for GCC 3.4+. (log10, log10f, log10l, asin, asinf, asinl, acos, acosf, acosl): Don't define for GCC 3.5+. (atan, atanf, atanl): Don't define for GCC 3.4+ or !__FAST_MATH__. (log1p, log1pf, log1pl, logb, logbf, logbl, log2, log2f, log2l): Don't define for GCC 3.5+. (drem, dremf, dreml): Don't define for GCC 3.5+ or !__FAST_MATH__. * sysdeps/sparc/fpu/bits/mathinline.h (sqrt, sqrtf, sqrtl): Don't define for GCC 3.2+. 2004-05-27 Jakub Jelinek <jakub@redhat.com> * string/bits/string2.h (__bzero): Define even for GCC 3.0+. * sysdeps/alpha/stpcpy.S (stpcpy): Add libc_hidden_builtin_def. * sysdeps/alpha/alphaev67/stpcpy.S (stpcpy): Likewise. * sysdeps/powerpc/powerpc32/stpcpy.S (stpcpy): Likewise. * sysdeps/powerpc/powerpc64/stpcpy.S (stpcpy): Likewise. * sysdeps/sparc/sparc32/stpcpy.S (stpcpy): Likewise. * sysdeps/sparc/sparc64/stpcpy.S (stpcpy): Likewise. * sysdeps/i386/stpcpy.S (stpcpy): Likewise. * sysdeps/i386/i586/stpcpy.S (stpcpy): Likewise. * sysdeps/generic/stpcpy.c (stpcpy): Likewise. * sysdeps/x86_64/stpcpy.S (stpcpy): Likewise. * sysdeps/i386/i586/memcpy.S (memcpy): Remove libc_hidden_builtin_def if MEMPCPY_P. * sysdeps/x86_64/memcpy.S (memcpy): Likewise. * sysdeps/i386/i686/mempcpy.S (mempcpy): Add libc_hidden_builtin_def. * sysdeps/i386/i586/mempcpy.S (mempcpy): Likewise. * sysdeps/generic/mempcpy.c (mempcpy): Likewise. * sysdeps/x86_64/mempcpy.S (mempcpy): Likewise.
-rw-r--r-- | ChangeLog | 43 | ||||
-rw-r--r-- | string/bits/string2.h | 23 | ||||
-rw-r--r-- | sysdeps/alpha/alphaev67/stpcpy.S | 3 | ||||
-rw-r--r-- | sysdeps/alpha/stpcpy.S | 3 | ||||
-rw-r--r-- | sysdeps/generic/mempcpy.c | 3 | ||||
-rw-r--r-- | sysdeps/generic/stpcpy.c | 5 | ||||
-rw-r--r-- | sysdeps/i386/fpu/bits/mathinline.h | 74 | ||||
-rw-r--r-- | sysdeps/i386/i586/mempcpy.S | 1 | ||||
-rw-r--r-- | sysdeps/i386/i586/stpcpy.S | 1 | ||||
-rw-r--r-- | sysdeps/i386/i686/mempcpy.S | 3 | ||||
-rw-r--r-- | sysdeps/i386/stpcpy.S | 4 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/stpcpy.S | 3 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/stpcpy.S | 3 | ||||
-rw-r--r-- | sysdeps/sparc/fpu/bits/mathinline.h | 6 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/stpcpy.S | 3 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/stpcpy.S | 3 | ||||
-rw-r--r-- | sysdeps/x86_64/memcpy.S | 4 | ||||
-rw-r--r-- | sysdeps/x86_64/mempcpy.S | 1 | ||||
-rw-r--r-- | sysdeps/x86_64/stpcpy.S | 1 |
19 files changed, 147 insertions, 40 deletions
diff --git a/ChangeLog b/ChangeLog index ef195a8b29..78d1b53aa7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,46 @@ +2004-05-27 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/fpu/bits/mathinline.h (__expm1_code): Define using + __builtin_expm1l for GCC 3.5+. + (__expl): Define using __builtin_expl for GCC 3.4+. + (exp, expf, expl): Don't define for GCC 3.4+. + (tan, tanf, tanl): Don't define for GCC 3.5+. + (__atan2l): Define using __builtin_atan2l for GCC 3.4+. + (atan2, atan2f, atan2l): Don't define for GCC 3.4+ or !__FAST_MATH__. + (fmod, fmodf, fmodl): Don't define for GCC 3.5+ or !__FAST_MATH__. + (fabsf, fabsl): Only provide if __USE_MISC or __USE_ISOC99. + (sin, sinf, sinl, cos, cosf, cosl, log, logf, logl): Don't define + for GCC 3.4+. + (log10, log10f, log10l, asin, asinf, asinl, acos, acosf, acosl): + Don't define for GCC 3.5+. + (atan, atanf, atanl): Don't define for GCC 3.4+ or !__FAST_MATH__. + (log1p, log1pf, log1pl, logb, logbf, logbl, log2, log2f, log2l): Don't + define for GCC 3.5+. + (drem, dremf, dreml): Don't define for GCC 3.5+ or !__FAST_MATH__. + * sysdeps/sparc/fpu/bits/mathinline.h (sqrt, sqrtf, sqrtl): Don't + define for GCC 3.2+. + +2004-05-27 Jakub Jelinek <jakub@redhat.com> + + * string/bits/string2.h (__bzero): Define even for GCC 3.0+. + * sysdeps/alpha/stpcpy.S (stpcpy): Add libc_hidden_builtin_def. + * sysdeps/alpha/alphaev67/stpcpy.S (stpcpy): Likewise. + * sysdeps/powerpc/powerpc32/stpcpy.S (stpcpy): Likewise. + * sysdeps/powerpc/powerpc64/stpcpy.S (stpcpy): Likewise. + * sysdeps/sparc/sparc32/stpcpy.S (stpcpy): Likewise. + * sysdeps/sparc/sparc64/stpcpy.S (stpcpy): Likewise. + * sysdeps/i386/stpcpy.S (stpcpy): Likewise. + * sysdeps/i386/i586/stpcpy.S (stpcpy): Likewise. + * sysdeps/generic/stpcpy.c (stpcpy): Likewise. + * sysdeps/x86_64/stpcpy.S (stpcpy): Likewise. + * sysdeps/i386/i586/memcpy.S (memcpy): Remove + libc_hidden_builtin_def if MEMPCPY_P. + * sysdeps/x86_64/memcpy.S (memcpy): Likewise. + * sysdeps/i386/i686/mempcpy.S (mempcpy): Add libc_hidden_builtin_def. + * sysdeps/i386/i586/mempcpy.S (mempcpy): Likewise. + * sysdeps/generic/mempcpy.c (mempcpy): Likewise. + * sysdeps/x86_64/mempcpy.S (mempcpy): Likewise. + 2004-05-26 Roland McGrath <roland@frob.com> * sysdeps/generic/bits/in.h diff --git a/string/bits/string2.h b/string/bits/string2.h index 665a711e7d..ba84da2346 100644 --- a/string/bits/string2.h +++ b/string/bits/string2.h @@ -94,9 +94,10 @@ __STRING2_COPY_TYPE (8); ((size_t)(const void *)((__x) + 1) - (size_t)(const void *)(__x) == 1) /* Set N bytes of S to C. */ -#if !defined _HAVE_STRING_ARCH_memset && ! __GNUC_PREREQ (3, 0) -# if _STRING_ARCH_unaligned -# define memset(s, c, n) \ +#if !defined _HAVE_STRING_ARCH_memset +# if !__GNUC_PREREQ (3, 0) +# if _STRING_ARCH_unaligned +# define memset(s, c, n) \ (__extension__ (__builtin_constant_p (n) && (n) <= 16 \ ? ((n) == 1 \ ? __memset_1 (s, c) \ @@ -105,10 +106,10 @@ __STRING2_COPY_TYPE (8); ? ({ void *__s = (s); __bzero (__s, n); __s; }) \ : memset (s, c, n)))) -# define __memset_1(s, c) ({ void *__s = (s); \ +# define __memset_1(s, c) ({ void *__s = (s); \ *((__uint8_t *) __s) = (__uint8_t) c; __s; }) -# define __memset_gc(s, c, n) \ +# define __memset_gc(s, c, n) \ ({ void *__s = (s); \ union { \ unsigned int __ui; \ @@ -177,15 +178,19 @@ __STRING2_COPY_TYPE (8); } \ \ __s; }) -# else -# define memset(s, c, n) \ +# else +# define memset(s, c, n) \ (__extension__ (__builtin_constant_p (c) && (c) == '\0' \ ? ({ void *__s = (s); __bzero (__s, n); __s; }) \ : memset (s, c, n))) +# endif # endif -/* GCC optimizes memset(s, 0, n) but not bzero(s, n). - The optimization is broken before EGCS 1.1. */ +/* GCC < 3.0 optimizes memset(s, 0, n) but not bzero(s, n). + The optimization is broken before EGCS 1.1. + GCC 3.0+ has __builtin_bzero as well, but at least till GCC 3.4 + if it decides to call the library function, it calls memset + and not bzero. */ # if __GNUC_PREREQ (2, 91) # define __bzero(s, n) __builtin_memset (s, '\0', n) # endif diff --git a/sysdeps/alpha/alphaev67/stpcpy.S b/sysdeps/alpha/alphaev67/stpcpy.S index d09babc8f5..b5da4e05d3 100644 --- a/sysdeps/alpha/alphaev67/stpcpy.S +++ b/sysdeps/alpha/alphaev67/stpcpy.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2002 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <rth@redhat.com>. @@ -51,3 +51,4 @@ ENTRY(__stpcpy) weak_alias (__stpcpy, stpcpy) libc_hidden_def (__stpcpy) +libc_hidden_builtin_def (stpcpy) diff --git a/sysdeps/alpha/stpcpy.S b/sysdeps/alpha/stpcpy.S index a37a308bb3..b73e85f217 100644 --- a/sysdeps/alpha/stpcpy.S +++ b/sysdeps/alpha/stpcpy.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1996, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <rth@tamu.edu>, 1996. @@ -53,3 +53,4 @@ ENTRY(__stpcpy) weak_alias (__stpcpy, stpcpy) libc_hidden_def (__stpcpy) +libc_hidden_builtin_def (stpcpy) diff --git a/sysdeps/generic/mempcpy.c b/sysdeps/generic/mempcpy.c index 5fa58b4fd2..a72617e86f 100644 --- a/sysdeps/generic/mempcpy.c +++ b/sysdeps/generic/mempcpy.c @@ -1,7 +1,7 @@ /* Copy memory to memory until the specified number of bytes has been copied, return pointer to following byte. Overlap is NOT handled correctly. - Copyright (C) 1991, 1997, 1998, 2002 Free Software Foundation, Inc. + Copyright (C) 1991, 1997, 1998, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Torbjorn Granlund (tege@sics.se). @@ -66,3 +66,4 @@ __mempcpy (dstpp, srcpp, len) } libc_hidden_def (__mempcpy) weak_alias (__mempcpy, mempcpy) +libc_hidden_builtin_def (mempcpy) diff --git a/sysdeps/generic/stpcpy.c b/sysdeps/generic/stpcpy.c index 92d3b4d25b..6e42911fde 100644 --- a/sysdeps/generic/stpcpy.c +++ b/sysdeps/generic/stpcpy.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995, 1997, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1995, 1997, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -50,3 +50,6 @@ libc_hidden_def (__stpcpy) #ifdef weak_alias weak_alias (__stpcpy, stpcpy) #endif +#ifdef libc_hidden_builtin_def +libc_hidden_builtin_def (stpcpy) +#endif diff --git a/sysdeps/i386/fpu/bits/mathinline.h b/sysdeps/i386/fpu/bits/mathinline.h index 85d48a5c90..4256777db3 100644 --- a/sysdeps/i386/fpu/bits/mathinline.h +++ b/sysdeps/i386/fpu/bits/mathinline.h @@ -1,5 +1,6 @@ /* Inline math functions for i387. - Copyright (C) 1995,96,97,98,99,2000,2001,2003 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by John C. Bowman <bowman@math.ualberta.ca>, 1995. @@ -216,7 +217,7 @@ __signbitl (long double __x) __THROW __inline_mathcode_ (float, __CONCAT(func,f), arg, code) \ __inline_mathcode_ (long double, __CONCAT(func,l), arg, code) # define __inline_mathcodeNP(func, arg, code) \ - __inline_mathcodeNP_ (double, func, arg, code) \ + __inline_mathcodeNP_ (double, func, arg, code) \ __inline_mathcodeNP_ (float, __CONCAT(func,f), arg, code) \ __inline_mathcodeNP_ (long double, __CONCAT(func,l), arg, code) # define __inline_mathcode2(func, arg1, arg2, code) \ @@ -224,7 +225,7 @@ __signbitl (long double __x) __THROW __inline_mathcode2_ (float, __CONCAT(func,f), arg1, arg2, code) \ __inline_mathcode2_ (long double, __CONCAT(func,l), arg1, arg2, code) # define __inline_mathcodeNP2(func, arg1, arg2, code) \ - __inline_mathcodeNP2_ (double, func, arg1, arg2, code) \ + __inline_mathcodeNP2_ (double, func, arg1, arg2, code) \ __inline_mathcodeNP2_ (float, __CONCAT(func,f), arg1, arg2, code) \ __inline_mathcodeNP2_ (long double, __CONCAT(func,l), arg1, arg2, code) # define __inline_mathcode3(func, arg1, arg2, arg3, code) \ @@ -233,7 +234,7 @@ __signbitl (long double __x) __THROW __inline_mathcode3_ (long double, __CONCAT(func,l), arg1, arg2, arg3, code) # define __inline_mathcodeNP3(func, arg1, arg2, arg3, code) \ __inline_mathcodeNP3_ (double, func, arg1, arg2, arg3, code) \ - __inline_mathcodeNP3_ (float, __CONCAT(func,f), arg1, arg2, arg3, code) \ + __inline_mathcodeNP3_ (float, __CONCAT(func,f), arg1, arg2, arg3, code) \ __inline_mathcodeNP3_ (long double, __CONCAT(func,l), arg1, arg2, arg3, code) #else # define __inline_mathcode(func, arg, code) \ @@ -362,7 +363,13 @@ __sincosl (long double __x, long double *__sinx, long double *__cosx) __THROW /* Optimized inline implementation, sometimes with reduced precision and/or argument range. */ -# define __expm1_code \ +# if __GNUC_PREREQ (3, 5) +# define __expm1_code \ + register long double __temp; \ + __temp = __builtin_expm1l (__x); \ + return __temp ? __temp : __x +# else +# define __expm1_code \ register long double __value; \ register long double __exponent; \ register long double __temp; \ @@ -382,10 +389,13 @@ __sincosl (long double __x, long double *__sinx, long double *__cosx) __THROW __temp -= 1.0; \ __temp += __value; \ return __temp ? __temp : __x +# endif __inline_mathcodeNP_ (long double, __expm1l, __x, __expm1_code) - -# define __exp_code \ +# if __GNUC_PREREQ (3, 4) +__inline_mathcodeNP_ (long double, __expl, __x, return __builtin_expl (__x)) +# else +# define __exp_code \ register long double __value; \ register long double __exponent; \ __asm __volatile__ \ @@ -404,8 +414,10 @@ __inline_mathcodeNP_ (long double, __expm1l, __x, __expm1_code) return __value __inline_mathcodeNP (exp, __x, __exp_code) __inline_mathcodeNP_ (long double, __expl, __x, __exp_code) +# endif +# if !__GNUC_PREREQ (3, 5) __inline_mathcodeNP (tan, __x, \ register long double __value; \ register long double __value2 __attribute__ ((__unused__)); \ @@ -413,19 +425,28 @@ __inline_mathcodeNP (tan, __x, \ ("fptan" \ : "=t" (__value2), "=u" (__value) : "0" (__x)); \ return __value) +# endif #endif /* __FAST_MATH__ */ -#define __atan2_code \ +#if __GNUC_PREREQ (3, 4) +__inline_mathcodeNP2_ (long double, __atan2l, __y, __x, + return __builtin_atan2l (__y, __x)) +#else +# define __atan2_code \ register long double __value; \ __asm __volatile__ \ ("fpatan" \ : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); \ return __value +# ifdef __FAST_MATH__ __inline_mathcodeNP2 (atan2, __y, __x, __atan2_code) +# endif __inline_mathcodeNP2_ (long double, __atan2l, __y, __x, __atan2_code) +#endif +#if defined __FAST_MATH__ && !__GNUC_PREREQ (3, 5) __inline_mathcodeNP2 (fmod, __x, __y, \ register long double __value; \ __asm __volatile__ \ @@ -435,6 +456,7 @@ __inline_mathcodeNP2 (fmod, __x, __y, \ "jp 1b" \ : "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); \ return __value) +#endif #ifdef __FAST_MATH__ @@ -449,8 +471,10 @@ __inline_mathopNP_ (long double, __sqrtl, "fsqrt") #if __GNUC_PREREQ (2, 8) __inline_mathcodeNP_ (double, fabs, __x, return __builtin_fabs (__x)) +# if defined __USE_MISC || defined __USE_ISOC99 __inline_mathcodeNP_ (float, fabsf, __x, return __builtin_fabsf (__x)) __inline_mathcodeNP_ (long double, fabsl, __x, return __builtin_fabsl (__x)) +# endif __inline_mathcodeNP_ (long double, __fabsl, __x, return __builtin_fabsl (__x)) #else __inline_mathop (fabs, "fabs") @@ -458,19 +482,26 @@ __inline_mathop_ (long double, __fabsl, "fabs") #endif #ifdef __FAST_MATH__ +# if !__GNUC_PREREQ (3, 4) /* The argument range of this inline version is reduced. */ __inline_mathopNP (sin, "fsin") /* The argument range of this inline version is reduced. */ __inline_mathopNP (cos, "fcos") __inline_mathop_declNP (log, "fldln2; fxch; fyl2x", "0" (__x) : "st(1)") +# endif + +# if !__GNUC_PREREQ (3, 5) __inline_mathop_declNP (log10, "fldlg2; fxch; fyl2x", "0" (__x) : "st(1)") __inline_mathcodeNP (asin, __x, return __atan2l (__x, __libc_sqrtl (1.0 - __x * __x))) __inline_mathcodeNP (acos, __x, return __atan2l (__libc_sqrtl (1.0 - __x * __x), __x)) -#endif /* __FAST_MATH__ */ +# endif +# if !__GNUC_PREREQ (3, 4) __inline_mathop_declNP (atan, "fld1; fpatan", "0" (__x) : "st(1)") +# endif +#endif /* __FAST_MATH__ */ __inline_mathcode_ (long double, __sgn1l, __x, \ __extension__ union { long double __xld; unsigned int __xi[3]; } __n = \ @@ -544,6 +575,7 @@ __inline_mathcodeNP (expm1, __x, __expm1_code) here. */ # define __M_SQRT2 1.41421356237309504880L /* sqrt(2) */ +# if !__GNUC_PREREQ (3, 5) __inline_mathcodeNP (log1p, __x, \ register long double __value; \ if (__fabsl (__x) >= 1.0 - 0.5 * __M_SQRT2) \ @@ -555,6 +587,7 @@ __inline_mathcodeNP (log1p, __x, \ "fyl2xp1" \ : "=t" (__value) : "0" (__x) : "st(1)"); \ return __value) +# endif /* The argument range of the inline version of asinhl is slightly reduced. */ @@ -574,6 +607,7 @@ __inline_mathcodeNP (atanh, __x, \ __inline_mathcodeNP2 (hypot, __x, __y, return __libc_sqrtl (__x * __x + __y * __y)) +# if !__GNUC_PREREQ (3, 5) __inline_mathcodeNP(logb, __x, \ register long double __value; \ register long double __junk; \ @@ -581,13 +615,17 @@ __inline_mathcodeNP(logb, __x, \ ("fxtract\n\t" \ : "=t" (__junk), "=u" (__value) : "0" (__x)); \ return __value) +# endif # endif #endif #ifdef __USE_ISOC99 -#ifdef __FAST_MATH__ +# ifdef __FAST_MATH__ + +# if !__GNUC_PREREQ (3, 5) __inline_mathop_declNP (log2, "fld1; fxch; fyl2x", "0" (__x) : "st(1)") +# endif __MATH_INLINE float ldexpf (float __x, int __y) __THROW @@ -604,9 +642,9 @@ ldexpl (long double __x, int __y) __THROW __inline_mathcodeNP3 (fma, __x, __y, __z, return (__x * __y) + __z) __inline_mathopNP (rint, "frndint") -#endif /* __FAST_MATH__ */ +# endif /* __FAST_MATH__ */ -#define __lrint_code \ +# define __lrint_code \ long int __lrintres; \ __asm__ __volatile__ \ ("fistpl %0" \ @@ -627,9 +665,9 @@ lrintl (long double __x) __THROW { __lrint_code; } -#undef __lrint_code +# undef __lrint_code -#define __llrint_code \ +# define __llrint_code \ long long int __llrintres; \ __asm__ __volatile__ \ ("fistpll %0" \ @@ -650,13 +688,14 @@ llrintl (long double __x) __THROW { __llrint_code; } -#undef __llrint_code +# undef __llrint_code #endif #ifdef __USE_MISC +# if defined __FAST_MATH__ && !__GNUC_PREREQ (3, 5) __inline_mathcodeNP2 (drem, __x, __y, \ register double __value; \ register int __clobbered; \ @@ -667,6 +706,7 @@ __inline_mathcodeNP2 (drem, __x, __y, \ "jp 1b" \ : "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); \ return __value) +# endif /* This function is used in the `isfinite' macro. */ @@ -679,7 +719,7 @@ __finite (double __x) __THROW } /* Miscellaneous functions */ -#ifdef __FAST_MATH__ +# ifdef __FAST_MATH__ __inline_mathcode (__coshm1, __x, \ register long double __exm1 = __expm1l (__fabsl (__x)); \ return 0.5 * (__exm1 / (__exm1 + 1.0)) * __exm1) @@ -687,7 +727,7 @@ __inline_mathcode (__coshm1, __x, \ __inline_mathcode (__acosh1p, __x, \ return log1pl (__x + __libc_sqrtl (__x) * __libc_sqrtl (__x + 2.0))) -#endif /* __FAST_MATH__ */ +# endif /* __FAST_MATH__ */ #endif /* __USE_MISC */ /* Undefine some of the large macros which are not used anymore. */ diff --git a/sysdeps/i386/i586/mempcpy.S b/sysdeps/i386/i586/mempcpy.S index dc8ab03356..0c9520e3b4 100644 --- a/sysdeps/i386/i586/mempcpy.S +++ b/sysdeps/i386/i586/mempcpy.S @@ -3,3 +3,4 @@ libc_hidden_def (BP_SYM (__mempcpy)) weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy)) +libc_hidden_builtin_def (mempcpy) diff --git a/sysdeps/i386/i586/stpcpy.S b/sysdeps/i386/i586/stpcpy.S index 5c19237f63..8691efd01c 100644 --- a/sysdeps/i386/i586/stpcpy.S +++ b/sysdeps/i386/i586/stpcpy.S @@ -5,3 +5,4 @@ weak_alias (__stpcpy, stpcpy) libc_hidden_def (__stpcpy) +libc_hidden_builtin_def (stpcpy) diff --git a/sysdeps/i386/i686/mempcpy.S b/sysdeps/i386/i686/mempcpy.S index b3d8cf9997..3ea89d4a17 100644 --- a/sysdeps/i386/i686/mempcpy.S +++ b/sysdeps/i386/i686/mempcpy.S @@ -1,7 +1,7 @@ /* Copy memory block and return pointer to following byte. For Intel 80x86, x>=6. This file is part of the GNU C Library. - Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. The GNU C Library is free software; you can redistribute it and/or @@ -59,3 +59,4 @@ ENTRY (BP_SYM (__mempcpy)) END (BP_SYM (__mempcpy)) libc_hidden_def (BP_SYM (__mempcpy)) weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy)) +libc_hidden_builtin_def (mempcpy) diff --git a/sysdeps/i386/stpcpy.S b/sysdeps/i386/stpcpy.S index 7975a87964..50f9c5ea5f 100644 --- a/sysdeps/i386/stpcpy.S +++ b/sysdeps/i386/stpcpy.S @@ -1,6 +1,7 @@ /* Copy SRC to DEST returning the address of the terminating '\0' in DEST. For Intel 80x86, x>=3. - Copyright (C) 1994,1995,1996,1997,2000,2002 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 1997, 2000, 2002, 2004 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper (drepper@gnu.ai.mit.edu). @@ -94,3 +95,4 @@ END (BP_SYM (__stpcpy)) weak_alias (BP_SYM (__stpcpy), BP_SYM (stpcpy)) libc_hidden_def (__stpcpy) +libc_hidden_builtin_def (stpcpy) diff --git a/sysdeps/powerpc/powerpc32/stpcpy.S b/sysdeps/powerpc/powerpc32/stpcpy.S index 9640a5d831..819fcdb7e6 100644 --- a/sysdeps/powerpc/powerpc32/stpcpy.S +++ b/sysdeps/powerpc/powerpc32/stpcpy.S @@ -1,5 +1,5 @@ /* Optimized stpcpy implementation for PowerPC. - Copyright (C) 1997, 1999, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1997, 1999, 2000, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -119,3 +119,4 @@ END (BP_SYM (__stpcpy)) weak_alias (BP_SYM (__stpcpy), BP_SYM (stpcpy)) libc_hidden_def (__stpcpy) +libc_hidden_builtin_def (stpcpy) diff --git a/sysdeps/powerpc/powerpc64/stpcpy.S b/sysdeps/powerpc/powerpc64/stpcpy.S index c842111ca5..deac0ea229 100644 --- a/sysdeps/powerpc/powerpc64/stpcpy.S +++ b/sysdeps/powerpc/powerpc64/stpcpy.S @@ -1,5 +1,5 @@ /* Optimized stpcpy implementation for PowerPC64. - Copyright (C) 1997, 1999, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1997, 1999, 2000, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -119,3 +119,4 @@ END (BP_SYM (__stpcpy)) weak_alias (BP_SYM (__stpcpy), BP_SYM (stpcpy)) libc_hidden_def (__stpcpy) +libc_hidden_builtin_def (stpcpy) diff --git a/sysdeps/sparc/fpu/bits/mathinline.h b/sysdeps/sparc/fpu/bits/mathinline.h index fcbcf41f67..8811314278 100644 --- a/sysdeps/sparc/fpu/bits/mathinline.h +++ b/sysdeps/sparc/fpu/bits/mathinline.h @@ -26,7 +26,7 @@ #ifdef __GNUC__ -#if defined __USE_ISOC99 && !__GNUC_PREREQ(3,0) +#if defined __USE_ISOC99 && !__GNUC_PREREQ (3, 0) # undef isgreater # undef isgreaterequal # undef isless @@ -153,7 +153,7 @@ __signbitl (long double __x) __THROW # endif /* __USE_ISOC99 */ -# ifndef __NO_MATH_INLINES +# if !defined __NO_MATH_INLINES && !__GNUC_PREREQ (3, 2) __MATH_INLINE double sqrt (double __x) __THROW @@ -182,7 +182,7 @@ sqrtl (long double __x) __THROW } # endif /* sparc64 */ -# endif /* !__NO_MATH_INLINES */ +# endif /* !__NO_MATH_INLINES && !GCC 3.2+ */ /* This code is used internally in the GNU libc. */ # ifdef __LIBC_INTERNAL_MATH_INLINES diff --git a/sysdeps/sparc/sparc32/stpcpy.S b/sysdeps/sparc/sparc32/stpcpy.S index f32faac9c1..937fed35f8 100644 --- a/sysdeps/sparc/sparc32/stpcpy.S +++ b/sysdeps/sparc/sparc32/stpcpy.S @@ -1,6 +1,6 @@ /* Copy SRC to DEST returning the address of the terminating '\0' in DEST. For SPARC v7. - Copyright (C) 1996, 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1996, 1999, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jj@ultra.linux.cz>. @@ -162,3 +162,4 @@ END(__stpcpy) weak_alias(__stpcpy, stpcpy) libc_hidden_def (__stpcpy) +libc_hidden_builtin_def (stpcpy) diff --git a/sysdeps/sparc/sparc64/stpcpy.S b/sysdeps/sparc/sparc64/stpcpy.S index bec0963ee0..f4366e9fc5 100644 --- a/sysdeps/sparc/sparc64/stpcpy.S +++ b/sysdeps/sparc/sparc64/stpcpy.S @@ -1,6 +1,6 @@ /* Copy SRC to DEST returning the address of the terminating '\0' in DEST. For SPARC v9. - Copyright (C) 1998, 1999, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and Jakub Jelinek <jj@ultra.linux.cz>. @@ -272,3 +272,4 @@ END(__stpcpy) weak_alias (__stpcpy, stpcpy) libc_hidden_def (__stpcpy) +libc_hidden_builtin_def (stpcpy) diff --git a/sysdeps/x86_64/memcpy.S b/sysdeps/x86_64/memcpy.S index d9fde6e459..de47688241 100644 --- a/sysdeps/x86_64/memcpy.S +++ b/sysdeps/x86_64/memcpy.S @@ -1,5 +1,5 @@ /* Highly optimized version for x86-64. - Copyright (C) 1997, 2000, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1997, 2000, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Based on i586 version contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -90,4 +90,6 @@ ENTRY (BP_SYM (memcpy)) ret END (BP_SYM (memcpy)) +#if !MEMPCPY_P libc_hidden_builtin_def (memcpy) +#endif diff --git a/sysdeps/x86_64/mempcpy.S b/sysdeps/x86_64/mempcpy.S index 38fdd0519e..03aa743fba 100644 --- a/sysdeps/x86_64/mempcpy.S +++ b/sysdeps/x86_64/mempcpy.S @@ -3,3 +3,4 @@ libc_hidden_def (BP_SYM (__mempcpy)) weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy)) +libc_hidden_builtin_def (mempcpy) diff --git a/sysdeps/x86_64/stpcpy.S b/sysdeps/x86_64/stpcpy.S index b9bbcd9cf6..ec23de1416 100644 --- a/sysdeps/x86_64/stpcpy.S +++ b/sysdeps/x86_64/stpcpy.S @@ -5,3 +5,4 @@ weak_alias (__stpcpy, stpcpy) libc_hidden_def (__stpcpy) +libc_hidden_builtin_def (stpcpy) |