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.
This commit is contained in:
parent
44809672d3
commit
3dbfd8117c
43
ChangeLog
43
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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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. */
|
||||
|
@ -3,3 +3,4 @@
|
||||
|
||||
libc_hidden_def (BP_SYM (__mempcpy))
|
||||
weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
|
||||
libc_hidden_builtin_def (mempcpy)
|
||||
|
@ -5,3 +5,4 @@
|
||||
|
||||
weak_alias (__stpcpy, stpcpy)
|
||||
libc_hidden_def (__stpcpy)
|
||||
libc_hidden_builtin_def (stpcpy)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -3,3 +3,4 @@
|
||||
|
||||
libc_hidden_def (BP_SYM (__mempcpy))
|
||||
weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
|
||||
libc_hidden_builtin_def (mempcpy)
|
||||
|
@ -5,3 +5,4 @@
|
||||
|
||||
weak_alias (__stpcpy, stpcpy)
|
||||
libc_hidden_def (__stpcpy)
|
||||
libc_hidden_builtin_def (stpcpy)
|
||||
|
Loading…
Reference in New Issue
Block a user