diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2012-06-01 13:59:14 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2012-06-01 13:59:14 +0000 |
commit | b7c6870709b68725080ae00a7accbc0463bce578 (patch) | |
tree | 9aa0ce26dbefc4af68aa3682ebab046a8fe8414b | |
parent | 69731ab373b0196a860cee9bed9790c2f9ac43c9 (diff) | |
download | eglibc2-b7c6870709b68725080ae00a7accbc0463bce578.tar.gz |
Merge changes between r18863 and r18892 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@18893 7b3dc134-2b1b-0410-93df-9e9f96275f8d
60 files changed, 2048 insertions, 1416 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog index c9bd9b4ad..009e75ed1 100644 --- a/libc/ChangeLog +++ b/libc/ChangeLog @@ -1,3 +1,163 @@ +2012-06-01 Adhemerval Zanella <azanella@linux.vnet.ibm.com> + + * sysdeps/powerpc/fpu/k_cosf.c: Fix underflow generation. + * sysdeps/powerpc/fpu/k_sinf.c: Likewise. + +2012-05-31 H.J. Lu <hongjiu.lu@intel.com> + + [BZ #14117] + * sysdeps/unix/sysv/linux/i386/bits/wchar.h: Include + <bits/wordsize.h>. + (__WCHAR_MIN): Support __WORDSIZE == 64. + (__WCHAR_MAX): Likewise. + + * sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/typesizes.h: This. + + [BZ #14183] + * sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h (__FSWORD_T_TYPE): + Defined with __SWORD_TYPE if __x86_64__ isn't defined. + + [BZ #14117] + * sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/siginfo.h: This. + + * sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/stat.h: This. + + * sysdeps/unix/sysv/linux/x86_64/bits/stat.h (_STAT_VER_KERNEL): + Defined to 1 if __x86_64__ isn't defined. + (_STAT_VER_LINUX_OLD): New. + (st_atime): Remove duplicate. + (st_mtime): Likewise. + (st_ctime): Likewise. + +2012-05-31 David S. Miller <davem@davemloft.net> + + * sysdeps/sparc/fpu/libm-test-ulps: Remove sqrt(2) and sqrt test + entries. + +2012-06-01 Andreas Schwab <schwab@linux-m68k.org> + + * sysdeps/powerpc/fpu/libm-test-ulps: Sort through + gen-libm-test.pl. + + [BZ #14132] + * elf/dl-reloc.c: Include <_itoa.h>. + (_dl_reloc_bad_type): Remove use of INTUSE. + * elf/dl-minimal.c (_itoa, _itoa_lower_digits): Likewise. + * stdio-common/_itoa.c (_itoa_word, _itoa): Likewise. + * stdio-common/psiginfo.c (psiginfo): Likewise. + * stdio-common/psignal.c (psignal): Likewise. + * string/strsignal.c (strsignal): Likewise. + * include/signal.h (_sys_siglist): Declare hidden proto. + * stdio-common/itoa-digits.c: Include <_itoa.h>. Replace + INTVARDEF with libc_hidden_data_def. + * stdio-common/itoa-udigits.c: Likewise. + * sysdeps/generic/_itoa.h (_itoa_upper_digits_internal) + (_itoa_lower_digits_internal): Remove declaration. + (_itoa_upper_digits, _itoa_lower_digits): Declare hidden proto. + * sysdeps/gnu/siglist.c (_sys_siglist_internal) + (_sys_sigabbrev_internal): Remove aliases. + (_sys_siglist): Define hidden alias. + +2012-05-31 Markus Trippelsdorf <markus@trippelsdorf.de> + + * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add + bits/sysctl.h. + +2012-05-31 H.J. Lu <hongjiu.lu@intel.com> + + [BZ #14117] + * sysdeps/unix/sysv/linux/x86_64/bits/sysctl.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/sysctl.h: This. + + * sysdeps/unix/sysv/linux/i386/sys/ucontext.h: Removed. + * sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/sys/ucontext.h: This. + * sysdeps/unix/sysv/linux/i386/sys/user.h: Removed. + * sysdeps/unix/sysv/linux/x86_64/sys/user.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/sys/user.h: This. + + * sysdeps/unix/sysv/linux/i386/sys/procfs.h: Removed. + * sysdeps/unix/sysv/linux/x86_64/sys/procfs.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/sys/procfs.h: This. + + * sysdeps/unix/sysv/linux/x86_64/sys/io.h (insb): Replace addr + with __addr. + (insw): Likewise. + (insl): Likewise. + (outsb): Likewise. + (outsw): Likewise. + (outsl): Likewise. + + * sysdeps/unix/sysv/linux/i386/bits/mman.h: Removed. + * sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/mman.h: This. + + * sysdeps/unix/sysv/linux/x86_64/bits/msq.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/msq.h: This. + * sysdeps/unix/sysv/linux/x86_64/bits/sem.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/sem.h: This. + * sysdeps/unix/sysv/linux/x86_64/bits/shm.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/shm.h: This. + + * sysdeps/unix/sysv/linux/x86_64/bits/ipctypes.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/ipctypes.h: This. + + * sysdeps/unix/sysv/linux/x86_64/bits/epoll.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/epoll.h: This. + + * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Removed. + * sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/fcntl.h: This. + + * sysdeps/unix/sysv/linux/i386/bits/environments.h: Removed. + * sysdeps/unix/sysv/linux/x86_64/bits/environments.h: Renamed + to ... + * sysdeps/unix/sysv/linux/x86/bits/environments.h: This. + + * sysdeps/unix/sysv/linux/i386/bits/a.out.h: Removed. + * sysdeps/unix/sysv/linux/x86_64/bits/a.out.h: Renamed to ... + * sysdeps/unix/sysv/linux/x86/bits/a.out.h: This. + + * sysdeps/unix/sysv/linux/i386/sys/elf.h: Error when compiling + for x86-64. + * sysdeps/unix/sysv/linux/i386/sys/vm86.h: Likewise. + +2012-05-31 Joseph Myers <joseph@codesourcery.com> + + * math/math.h (M_El): Use two more decimal places. + (M_LOG2El): Likewise. + (M_LOG10El): Likewise. + (M_LN2l): Likewise. + (M_LN10l): Likewise. + (M_PIl): Likewise. + (M_PI_2l): Likewise. + (M_PI_4l): Likewise. + (M_1_PIl): Likewise. + (M_2_PIl): Likewise. + (M_2_SQRTPIl): Likewise. + (M_SQRT2l): Likewise. + (M_SQRT1_2l): Likewise. + +2012-05-31 David S. Miller <davem@davemloft.net> + + * sysdeps/sparc/sparc64/memcpy.S: Use fsrc2 to move 64-bit + values between float registers. + * sysdeps/sparc/sparc64/memset.S: Likewise. + * sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: Likewise. + +2012-05-31 Mike Frysinger <vapier@gentoo.org> + + * debug/Makefile (CFLAGS-tst-longjmp_chk.c): Delete + -D_FORTIFY_SOURCE=1. + (CPPFLAGS-tst-longjmp_chk.c): Define. + (CFLAGS-tst-longjmp_chk2.c): Delete -D_FORTIFY_SOURCE=1. + (CPPFLAGS-tst-longjmp_chk2.c): Define. + * wcsmbs/Makefile (CPPFLAGS-tst-wchar-h.c): Rename from + CFLAGS-tst-wchar-h.c. + 2012-05-31 Marek Polacek <polacek@redhat.com> [BZ #14132] diff --git a/libc/debug/Makefile b/libc/debug/Makefile index 943630882..a097057ce 100644 --- a/libc/debug/Makefile +++ b/libc/debug/Makefile @@ -89,10 +89,14 @@ CFLAGS-pread_chk.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-pread64_chk.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-recv_chk.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-recvfrom_chk.c = -fexceptions -fasynchronous-unwind-tables -CFLAGS-tst-longjmp_chk.c = -fexceptions -fasynchronous-unwind-tables \ - -D_FORTIFY_SOURCE=1 -CFLAGS-tst-longjmp_chk2.c = -fexceptions -fasynchronous-unwind-tables \ - -D_FORTIFY_SOURCE=1 + +# Need to make sure the settings here override what configure might have +# set up for us, so keep the CFLAGS/CPPFLAGS split logical as the order is: +# <user CFLAGS> <test CFLAGS> <user CPPFLAGS> <test CPPFLAGS> +CFLAGS-tst-longjmp_chk.c = -fexceptions -fasynchronous-unwind-tables +CPPFLAGS-tst-longjmp_chk.c = -D_FORTIFY_SOURCE=1 +CFLAGS-tst-longjmp_chk2.c = -fexceptions -fasynchronous-unwind-tables +CPPFLAGS-tst-longjmp_chk2.c = -D_FORTIFY_SOURCE=1 # We know these tests have problems with format strings, this is what # we are testing. Disable that warning. diff --git a/libc/elf/dl-minimal.c b/libc/elf/dl-minimal.c index 4a97f56fa..a8b2d4f33 100644 --- a/libc/elf/dl-minimal.c +++ b/libc/elf/dl-minimal.c @@ -315,12 +315,10 @@ _itoa (value, buflim, base, upper_case) unsigned int base; int upper_case; { - extern const char INTUSE(_itoa_lower_digits)[] attribute_hidden; - assert (! upper_case); do - *--buflim = INTUSE(_itoa_lower_digits)[value % base]; + *--buflim = _itoa_lower_digits[value % base]; while ((value /= base) != 0); return buflim; @@ -380,5 +378,5 @@ rtld_hidden_def (__chk_fail) /* The '_itoa_lower_digits' variable in libc.so is able to handle bases up to 36. We don't need this here. */ -const char INTUSE(_itoa_lower_digits)[16] attribute_hidden - = "0123456789abcdef"; +const char _itoa_lower_digits[16] = "0123456789abcdef"; +rtld_hidden_data_def (_itoa_lower_digits) diff --git a/libc/elf/dl-reloc.c b/libc/elf/dl-reloc.c index 75933c892..e6f77262b 100644 --- a/libc/elf/dl-reloc.c +++ b/libc/elf/dl-reloc.c @@ -1,5 +1,5 @@ /* Relocate a shared object and resolve its references to other loaded objects. - Copyright (C) 1995-2006, 2008-2010, 2011 Free Software Foundation, Inc. + Copyright (C) 1995-2012 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 @@ -24,6 +24,7 @@ #include <sys/mman.h> #include <sys/param.h> #include <sys/types.h> +#include <_itoa.h> #include "dynamic-link.h" /* Statistics function. */ @@ -350,8 +351,7 @@ void internal_function __attribute_noinline__ _dl_reloc_bad_type (struct link_map *map, unsigned int type, int plt) { - extern const char INTUSE(_itoa_lower_digits)[] attribute_hidden; -#define DIGIT(b) INTUSE(_itoa_lower_digits)[(b) & 0xf]; +#define DIGIT(b) _itoa_lower_digits[(b) & 0xf]; /* XXX We cannot translate these messages. */ static const char msg[2][32 diff --git a/libc/include/signal.h b/libc/include/signal.h index c43f2abee..a01939588 100644 --- a/libc/include/signal.h +++ b/libc/include/signal.h @@ -14,6 +14,7 @@ libc_hidden_proto (__sigpause) libc_hidden_proto (raise) libc_hidden_proto (__libc_current_sigrtmin) libc_hidden_proto (__libc_current_sigrtmax) +libc_hidden_proto (_sys_siglist) /* Now define the internal interfaces. */ extern __sighandler_t __bsd_signal (int __sig, __sighandler_t __handler); diff --git a/libc/math/math.h b/libc/math/math.h index eb0fdd891..f48880c45 100644 --- a/libc/math/math.h +++ b/libc/math/math.h @@ -368,19 +368,19 @@ extern int matherr (struct exception *__exc); Therefore we provide as an extension constants with similar names as a GNU extension. Provide enough digits for the 128-bit IEEE quad. */ #ifdef __USE_GNU -# define M_El 2.7182818284590452353602874713526625L /* e */ -# define M_LOG2El 1.4426950408889634073599246810018921L /* log_2 e */ -# define M_LOG10El 0.4342944819032518276511289189166051L /* log_10 e */ -# define M_LN2l 0.6931471805599453094172321214581766L /* log_e 2 */ -# define M_LN10l 2.3025850929940456840179914546843642L /* log_e 10 */ -# define M_PIl 3.1415926535897932384626433832795029L /* pi */ -# define M_PI_2l 1.5707963267948966192313216916397514L /* pi/2 */ -# define M_PI_4l 0.7853981633974483096156608458198757L /* pi/4 */ -# define M_1_PIl 0.3183098861837906715377675267450287L /* 1/pi */ -# define M_2_PIl 0.6366197723675813430755350534900574L /* 2/pi */ -# define M_2_SQRTPIl 1.1283791670955125738961589031215452L /* 2/sqrt(pi) */ -# define M_SQRT2l 1.4142135623730950488016887242096981L /* sqrt(2) */ -# define M_SQRT1_2l 0.7071067811865475244008443621048490L /* 1/sqrt(2) */ +# define M_El 2.718281828459045235360287471352662498L /* e */ +# define M_LOG2El 1.442695040888963407359924681001892137L /* log_2 e */ +# define M_LOG10El 0.434294481903251827651128918916605082L /* log_10 e */ +# define M_LN2l 0.693147180559945309417232121458176568L /* log_e 2 */ +# define M_LN10l 2.302585092994045684017991454684364208L /* log_e 10 */ +# define M_PIl 3.141592653589793238462643383279502884L /* pi */ +# define M_PI_2l 1.570796326794896619231321691639751442L /* pi/2 */ +# define M_PI_4l 0.785398163397448309615660845819875721L /* pi/4 */ +# define M_1_PIl 0.318309886183790671537767526745028724L /* 1/pi */ +# define M_2_PIl 0.636619772367581343075535053490057448L /* 2/pi */ +# define M_2_SQRTPIl 1.128379167095512573896158903121545172L /* 2/sqrt(pi) */ +# define M_SQRT2l 1.414213562373095048801688724209698079L /* sqrt(2) */ +# define M_SQRT1_2l 0.707106781186547524400844362104849039L /* 1/sqrt(2) */ #endif diff --git a/libc/stdio-common/_itoa.c b/libc/stdio-common/_itoa.c index 12d69541b..ebb3e857c 100644 --- a/libc/stdio-common/_itoa.c +++ b/libc/stdio-common/_itoa.c @@ -1,6 +1,5 @@ /* Internal function for converting integers to ASCII. - Copyright (C) 1994, 1995, 1996, 1999, 2000, 2002, 2003, 2004, 2007 - Free Software Foundation, Inc. + Copyright (C) 1994-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Torbjorn Granlund <tege@matematik.su.se> and Ulrich Drepper <drepper@gnu.org>. @@ -160,27 +159,13 @@ const struct base_table_t _itoa_base_table[] attribute_hidden = }; #endif -/* Lower-case digits. */ -extern const char _itoa_lower_digits[]; -extern const char _itoa_lower_digits_internal[] attribute_hidden; -/* Upper-case digits. */ -extern const char _itoa_upper_digits[]; -extern const char _itoa_upper_digits_internal[] attribute_hidden; - - char * _itoa_word (_ITOA_WORD_TYPE value, char *buflim, unsigned int base, int upper_case) { const char *digits = (upper_case -#if !defined NOT_IN_libc || defined IS_IN_rtld - ? INTUSE(_itoa_upper_digits) - : INTUSE(_itoa_lower_digits) -#else ? _itoa_upper_digits - : _itoa_lower_digits -#endif - ); + : _itoa_lower_digits); switch (base) { @@ -213,8 +198,8 @@ _itoa (value, buflim, base, upper_case) int upper_case; { const char *digits = (upper_case - ? INTUSE(_itoa_upper_digits) - : INTUSE(_itoa_lower_digits)); + ? _itoa_upper_digits + : _itoa_lower_digits); const struct base_table_t *brec = &_itoa_base_table[base - 2]; switch (base) diff --git a/libc/stdio-common/itoa-digits.c b/libc/stdio-common/itoa-digits.c index b0a652d6c..e38f48405 100644 --- a/libc/stdio-common/itoa-digits.c +++ b/libc/stdio-common/itoa-digits.c @@ -1,5 +1,5 @@ /* Digits. - Copyright (C) 1994,1995,1996,1999,2000,2002 Free Software Foundation, Inc. + Copyright (C) 1994-2012 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 @@ -16,7 +16,9 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <_itoa.h> + /* Lower-case digits. */ const char _itoa_lower_digits[36] = "0123456789abcdefghijklmnopqrstuvwxyz"; -INTVARDEF(_itoa_lower_digits) +libc_hidden_data_def (_itoa_lower_digits) diff --git a/libc/stdio-common/itoa-udigits.c b/libc/stdio-common/itoa-udigits.c index 39f9549c9..215af7126 100644 --- a/libc/stdio-common/itoa-udigits.c +++ b/libc/stdio-common/itoa-udigits.c @@ -1,5 +1,5 @@ /* Digits. - Copyright (C) 1994,1995,1996,1999,2000,2002 Free Software Foundation, Inc. + Copyright (C) 1994-2012 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 @@ -16,7 +16,9 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <_itoa.h> + /* Upper-case digits. */ const char _itoa_upper_digits[36] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; -INTVARDEF(_itoa_upper_digits) +libc_hidden_data_def (_itoa_upper_digits) diff --git a/libc/stdio-common/psiginfo.c b/libc/stdio-common/psiginfo.c index eb758c481..9701fcd8a 100644 --- a/libc/stdio-common/psiginfo.c +++ b/libc/stdio-common/psiginfo.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009, 2010 Free Software Foundation, Inc. +/* Copyright (C) 2009-2012 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 @@ -26,11 +26,6 @@ #include <not-cancel.h> -/* Defined in sys_siglist.c. */ -extern const char *const _sys_siglist[]; -extern const char *const _sys_siglist_internal[] attribute_hidden; - - #define MF(l) MF1 (l) #define MF1(l) str_##l #define C(s1, s2) C1 (s1, s2) @@ -84,7 +79,7 @@ psiginfo (const siginfo_t *pinfo, const char *s) const char *desc; if (pinfo->si_signo >= 0 && pinfo->si_signo < NSIG - && ((desc = INTUSE(_sys_siglist)[pinfo->si_signo]) != NULL + && ((desc = _sys_siglist[pinfo->si_signo]) != NULL #ifdef SIGRTMIN || (pinfo->si_signo >= SIGRTMIN && pinfo->si_signo < SIGRTMAX) #endif diff --git a/libc/stdio-common/psignal.c b/libc/stdio-common/psignal.c index 23026f9b1..309803a97 100644 --- a/libc/stdio-common/psignal.c +++ b/libc/stdio-common/psignal.c @@ -1,5 +1,4 @@ -/* Copyright (C) 1991, 1992, 1995, 1996, 1997, 2001, 2002, 2004, 2005, 2009 - Free Software Foundation, Inc. +/* Copyright (C) 1991-2012 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 @@ -22,12 +21,6 @@ #include <libintl.h> #include <wchar.h> - -/* Defined in sys_siglist.c. */ -extern const char *const _sys_siglist[]; -extern const char *const _sys_siglist_internal[] attribute_hidden; - - /* Print out on stderr a line consisting of the test in S, a colon, a space, a message describing the meaning of the signal number SIG and a newline. If S is NULL or "", the colon and space are omitted. */ @@ -41,7 +34,7 @@ psignal (int sig, const char *s) else colon = ": "; - if (sig >= 0 && sig < NSIG && (desc = INTUSE(_sys_siglist)[sig]) != NULL) + if (sig >= 0 && sig < NSIG && (desc = _sys_siglist[sig]) != NULL) (void) __fxprintf (NULL, "%s%s%s\n", s, colon, _(desc)); else { diff --git a/libc/string/strsignal.c b/libc/string/strsignal.c index 74ebe3615..c6b6a5360 100644 --- a/libc/string/strsignal.c +++ b/libc/string/strsignal.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1994-2002, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1991-2012 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 @@ -22,10 +22,6 @@ #include <libintl.h> #include <bits/libc-lock.h> - -/* Defined in siglist.c. */ -extern const char *const _sys_siglist[]; -extern const char *const _sys_siglist_internal[] attribute_hidden; static __libc_key_t key; /* If nonzero the key allocation failed and we should better use a @@ -55,7 +51,7 @@ strsignal (int signum) (signum >= SIGRTMIN && signum <= SIGRTMAX) || #endif signum < 0 || signum >= NSIG - || (desc = INTUSE(_sys_siglist)[signum]) == NULL) + || (desc = _sys_siglist[signum]) == NULL) { char *buffer = getbuffer (); int len; diff --git a/libc/sysdeps/generic/_itoa.h b/libc/sysdeps/generic/_itoa.h index 0a670431e..2ab401d01 100644 --- a/libc/sysdeps/generic/_itoa.h +++ b/libc/sysdeps/generic/_itoa.h @@ -1,5 +1,5 @@ /* Internal function for converting integers to ASCII. - Copyright (C) 1994-1999,2002,2003,2007 Free Software Foundation, Inc. + Copyright (C) 1994-2012 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 @@ -45,9 +45,11 @@ extern char *_itoa (unsigned long long int value, char *buflim, unsigned int base, int upper_case); extern const char _itoa_upper_digits[]; -extern const char _itoa_upper_digits_internal[] attribute_hidden; extern const char _itoa_lower_digits[]; -extern const char _itoa_lower_digits_internal[] attribute_hidden; +#if !defined NOT_IN_libc || defined IS_IN_rtld +hidden_proto (_itoa_upper_digits) +hidden_proto (_itoa_lower_digits) +#endif #ifndef NOT_IN_libc extern char *_itoa_word (_ITOA_WORD_TYPE value, char *buflim, @@ -58,14 +60,8 @@ _itoa_word (_ITOA_WORD_TYPE value, char *buflim, unsigned int base, int upper_case) { const char *digits = (upper_case -# if defined IS_IN_rtld - ? INTUSE(_itoa_upper_digits) - : INTUSE(_itoa_lower_digits) -# else ? _itoa_upper_digits - : _itoa_lower_digits -# endif - ); + : _itoa_lower_digits); switch (base) { diff --git a/libc/sysdeps/gnu/siglist.c b/libc/sysdeps/gnu/siglist.c index 61a0b827f..1a7e38df0 100644 --- a/libc/sysdeps/gnu/siglist.c +++ b/libc/sysdeps/gnu/siglist.c @@ -1,5 +1,5 @@ /* Define list of all signal numbers and their names. - Copyright (C) 1997-2000, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 1997-2012 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 @@ -28,7 +28,7 @@ const char *const __new_sys_siglist[NSIG] = #include <siglist.h> #undef init_sig }; -strong_alias (__new_sys_siglist, _sys_siglist_internal) +libc_hidden_ver (__new_sys_siglist, _sys_siglist) const char *const __new_sys_sigabbrev[NSIG] = { @@ -36,7 +36,6 @@ const char *const __new_sys_sigabbrev[NSIG] = #include <siglist.h> #undef init_sig }; -strong_alias (__new_sys_sigabbrev, _sys_sigabbrev_internal) #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) declare_symbol_alias (__old_sys_siglist, __new_sys_siglist, object, diff --git a/libc/sysdeps/powerpc/fpu/k_cosf.c b/libc/sysdeps/powerpc/fpu/k_cosf.c index e2571d680..d5668e312 100644 --- a/libc/sysdeps/powerpc/fpu/k_cosf.c +++ b/libc/sysdeps/powerpc/fpu/k_cosf.c @@ -18,6 +18,7 @@ not, see <http://www.gnu.org/licenses/>. */ #include <math.h> +#include <fenv.h> #include <math_private.h> static const float twom27 = 7.4505806e-09; @@ -40,8 +41,8 @@ __kernel_cosf (float x, float y) ix = __builtin_fabsf (x); if (ix < twom27) { /* |x| < 2**-27 */ - if (x == 0.0) - return one; + __feraiseexcept (FE_INEXACT); + return one; } z = x * x; r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6))))); diff --git a/libc/sysdeps/powerpc/fpu/k_sinf.c b/libc/sysdeps/powerpc/fpu/k_sinf.c index ab4561e65..c8fb8ef81 100644 --- a/libc/sysdeps/powerpc/fpu/k_sinf.c +++ b/libc/sysdeps/powerpc/fpu/k_sinf.c @@ -18,6 +18,7 @@ not, see <http://www.gnu.org/licenses/>. */ #include <math.h> +#include <fenv.h> #include <math_private.h> @@ -39,8 +40,8 @@ __kernel_sinf (float x, float y, int iy) ix = __builtin_fabsf (x); if (ix < twom27) { /* |x| < 2**-27 */ - if (x == 0.0) - return x; + __feraiseexcept (FE_INEXACT); + return x; } z = x * x; v = z * x; diff --git a/libc/sysdeps/powerpc/fpu/libm-test-ulps b/libc/sysdeps/powerpc/fpu/libm-test-ulps index 85a923545..66576a52a 100644 --- a/libc/sysdeps/powerpc/fpu/libm-test-ulps +++ b/libc/sysdeps/powerpc/fpu/libm-test-ulps @@ -1,104 +1,104 @@ # Begin of automatic generation # acos -Test "acos (2e-17) == 1.57079632679489659923132169163975144": -ildouble: 1 -ldouble: 1 Test "acos (-0x0.ffffffff8p0) == 3.1415773948007305904329067627145550395696": -ldouble: 1 ildouble: 1 +ldouble: 1 Test "acos (-0x0.ffffffp0) == 3.1412473866050770348750401337968641476999": +ildouble: 1 ldouble: 1 +Test "acos (2e-17) == 1.57079632679489659923132169163975144": ildouble: 1 +ldouble: 1 # acos_downward Test "acos_downward (-0) == pi/2": float: 1 ifloat: 1 -Test "acos_downward (0) == pi/2": -float: 1 -ifloat: 1 Test "acos_downward (-0.5) == M_PI_6l*4.0": double: 1 idouble: 1 -ldouble: 1 ildouble: 1 -Test "acos_downward (0.5) == M_PI_6l*2.0": +ldouble: 1 +Test "acos_downward (-1) == pi": +float: 1 +ifloat: 1 +Test "acos_downward (0) == pi/2": float: 1 ifloat: 1 +Test "acos_downward (0.5) == M_PI_6l*2.0": double: 1 -idouble: 1 -ldouble: 1 -ildouble: 1 -Test "acos_downward (-1) == pi": float: 1 +idouble: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 # acos_towardzero Test "acos_towardzero (-0) == pi/2": float: 1 ifloat: 1 -Test "acos_towardzero (0) == pi/2": -float: 1 -ifloat: 1 Test "acos_towardzero (-0.5) == M_PI_6l*4.0": double: 1 idouble: 1 -ldouble: 1 ildouble: 1 -Test "acos_towardzero (0.5) == M_PI_6l*2.0": +ldouble: 1 +Test "acos_towardzero (-1) == pi": +float: 1 +ifloat: 1 +Test "acos_towardzero (0) == pi/2": float: 1 ifloat: 1 +Test "acos_towardzero (0.5) == M_PI_6l*2.0": double: 1 -idouble: 1 -ldouble: 1 -ildouble: 1 -Test "acos_towardzero (-1) == pi": float: 1 +idouble: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 # acos_upward Test "acos_upward (-0) == pi/2": -ldouble: 2 ildouble: 2 -Test "acos_upward (-1) == pi": ldouble: 2 +Test "acos_upward (-1) == pi": ildouble: 2 -Test "acos_upward (0) == pi/2": ldouble: 2 +Test "acos_upward (0) == pi/2": ildouble: 2 +ldouble: 2 # asin Test "asin (-0x0.ffffffff8p0) == -1.5707810680058339712015850710748035974710": -ldouble: 1 ildouble: 1 -Test "asin (-0x0.ffffffp0) == -1.5704510598101804156437184421571127056013": -ldouble: 1 -ildouble: 1 -Test "asin (0x0.ffffffff8p0) == 1.5707810680058339712015850710748035974710": ldouble: 1 +Test "asin (-0x0.ffffffp0) == -1.5704510598101804156437184421571127056013": ildouble: 1 -Test "asin (0x0.ffffffp0) == 1.5704510598101804156437184421571127056013": ldouble: 1 -ildouble: 1 Test "asin (0.75) == 0.848062078981481008052944338998418080": ildouble: 2 ldouble: 2 +Test "asin (0x0.ffffffff8p0) == 1.5707810680058339712015850710748035974710": +ildouble: 1 +ldouble: 1 +Test "asin (0x0.ffffffp0) == 1.5704510598101804156437184421571127056013": +ildouble: 1 +ldouble: 1 # asin_downward Test "asin_downward (-0.5) == -pi/6": double: 1 idouble: 1 +ildouble: 1 ldouble: 1 +Test "asin_downward (-1.0) == -pi/2": ildouble: 1 +ldouble: 1 Test "asin_downward (0.5) == pi/6": double: 1 idouble: 1 -ldouble: 1 ildouble: 1 -Test "asin_downward (-1.0) == -pi/2": ldouble: 1 -ildouble: 1 Test "asin_downward (1.0) == pi/2": float: 1 ifloat: 1 @@ -107,16 +107,16 @@ ifloat: 1 Test "asin_towardzero (-0.5) == -pi/6": double: 1 idouble: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-1.0) == -pi/2": +float: 1 +ifloat: 1 Test "asin_towardzero (0.5) == pi/6": double: 1 idouble: 1 -ldouble: 1 ildouble: 1 -Test "asin_towardzero (-1.0) == -pi/2": -float: 1 -ifloat:1 +ldouble: 1 Test "asin_towardzero (1.0) == pi/2": float: 1 ifloat: 1 @@ -126,8 +126,8 @@ Test "asin_upward (-1.0) == -pi/2": float: 1 ifloat: 1 Test "asin_upward (1.0) == pi/2": -ldouble: 1 ildouble: 1 +ldouble: 1 # atan2 Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112": @@ -607,19 +607,19 @@ idouble: 1 Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": double: 1 idouble: 1 -Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": -double: 1 -idouble: 1 Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 +Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": float: 1 ifloat: 1 @@ -631,27 +631,33 @@ ifloat: 1 Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i": float: 1 ifloat: 1 +Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 -Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": -float: 1 -ifloat: 1 ldouble: 1 -ildouble: 1 -Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": -double: 1 -idouble: 1 Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": double: 1 idouble: 1 +Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i": double: 1 idouble: 1 # ccosh +Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": +float: 1 +ifloat: 1 +Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": +float: 1 +ifloat: 1 Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": double: 1 idouble: 1 @@ -661,19 +667,13 @@ idouble: 1 Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 -Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": -float: 1 -ifloat: 1 -Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": -float: 1 -ifloat: 1 +ldouble: 1 Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i": double: 1 float: 1 @@ -686,25 +686,25 @@ float: 1 ifloat: 1 ildouble: 2 ldouble: 2 +Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 -Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": -double: 1 -idouble: 1 -Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": -double: 1 -idouble: 1 -Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i": -double: 1 -idouble: 1 +ldouble: 1 # cexp Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i": @@ -1169,40 +1169,45 @@ ldouble: 2 Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i": double: 1 idouble: 1 -Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i": -double: 1 -idouble: 1 Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 +Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i": +double: 1 +idouble: 1 Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 +Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i": +double: 1 +idouble: 1 Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 -Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i": -float: 1 -ifloat: 1 ldouble: 1 -ildouble: 1 -Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i": -double: 1 -idouble: 1 Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i": double: 1 idouble: 1 +Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i": double: 1 idouble: 1 # csinh +Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": double: 1 idouble: 1 @@ -1212,16 +1217,11 @@ idouble: 1 Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 -ildouble: 1 -Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": -double: 1 -idouble: 1 ildouble: 1 ldouble: 1 Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i": @@ -1234,26 +1234,25 @@ float: 1 ifloat: 1 ildouble: 1 ldouble: 1 -float: 1 +Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i": +double: 1 +idouble: 1 +Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 -Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": -double: 1 -idouble: 1 -Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": -double: 1 -idouble: 1 -Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i": -double: 1 -idouble: 1 +ldouble: 1 # csqrt Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i": @@ -1313,15 +1312,12 @@ ifloat: 2 # ctan Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 -ldouble: 1 +ifloat: 1 ildouble: 1 -Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i": -ldouble: 2 -ildouble: 2 +ldouble: 1 Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": double: 1 idouble: 1 @@ -1331,10 +1327,10 @@ Test "Real part of: ctan (0.75 + 1.25 i) == 0.1608077859162064267251660581734386 float: 1 ifloat: 1 Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i": @@ -1344,13 +1340,16 @@ Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708 float: 1 ifloat: 1 Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i": float: 1 ifloat: 1 +Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i": +ildouble: 2 +ldouble: 2 # ctanh Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": @@ -1361,40 +1360,39 @@ ifloat: 2 Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": double: 1 idouble: 1 -Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": +Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i": float: 1 ifloat: 1 +Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": double: 1 +float: 1 idouble: 1 +ifloat: 1 Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": double: 1 idouble: 1 -ildouble: 1 -ldouble: 3 ildouble: 3 +ldouble: 3 Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": float: 1 ifloat: 1 -ldouble: 2 ildouble: 2 -Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i": ldouble: 2 -ildouble: 2 -Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i": -float: 1 -ifloat: 1 Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i": double: 1 idouble: 1 Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i": +double: 1 float: 1 ifloat: 1 -double: 1 +Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i": +ildouble: 2 +ldouble: 2 # erf Test "erf (1.25) == 0.922900128256458230136523481197281140": @@ -1430,11 +1428,6 @@ ildouble: 1 ldouble: 1 # exp10 -Test "exp10 (-305) == 1.0e-305": -double: 1 -idouble: 1 -ldouble: 1 -ildouble: 1 Test "exp10 (-1) == 0.1": double: 2 float: 1 @@ -1442,19 +1435,21 @@ idouble: 2 ifloat: 1 ildouble: 1 ldouble: 1 -Test "exp10 (0.75) == 5.62341325190349080394951039776481231": +Test "exp10 (-305) == 1.0e-305": double: 1 -float: 1 idouble: 1 -ifloat: 1 ildouble: 1 ldouble: 1 Test "exp10 (-36) == 1.0e-36": double: 1 idouble: 1 -Test "exp10 (36) == 1.0e36": +Test "exp10 (0.75) == 5.62341325190349080394951039776481231": double: 1 +float: 1 idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "exp10 (3) == 1000": double: 1 float: 1 @@ -1462,6 +1457,9 @@ idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "exp10 (36) == 1.0e36": +double: 1 +idouble: 1 # exp2 Test "exp2 (10) == 1024": @@ -2338,28 +2336,28 @@ ildouble: 1 ldouble: 1 Function: "acos_downward": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 -ldouble: 1 +ifloat: 1 ildouble: 1 +ldouble: 1 Function: "acos_tonearest": -ldouble: 1 ildouble: 1 +ldouble: 1 Function: "acos_towardzero": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 -ldouble: 1 +ifloat: 1 ildouble: 1 +ldouble: 1 Function: "acos_upward": -ldouble: 2 ildouble: 2 +ldouble: 2 Function: "acosh": ildouble: 1 @@ -2370,30 +2368,30 @@ ildouble: 2 ldouble: 2 Function: "asin_downward": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 -ldouble: 1 +ifloat: 1 ildouble: 1 +ldouble: 1 Function: "asin_tonearest": -ldouble: 1 ildouble: 1 +ldouble: 1 Function: "asin_towardzero": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 -ldouble: 1 +ifloat: 1 ildouble: 1 +ldouble: 1 Function: "asin_upward": float: 1 ifloat: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 Function: "asinh": ildouble: 1 @@ -2508,17 +2506,16 @@ ldouble: 1 Function: Real part of "ccos": double: 1 float: 1 -double: 1 idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 Function: Imaginary part of "ccos": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -2531,10 +2528,10 @@ ildouble: 1 ldouble: 1 Function: Imaginary part of "ccosh": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 2 ldouble: 2 @@ -2663,16 +2660,16 @@ ildouble: 1 ldouble: 1 Function: Real part of "csin": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Function: Imaginary part of "csin": -ldouble: 1 ildouble: 1 +ldouble: 1 Function: Real part of "csinh": float: 1 @@ -2705,18 +2702,18 @@ ildouble: 1 ldouble: 1 Function: Real part of "ctan": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 2 ldouble: 2 Function: Imaginary part of "ctan": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -2729,10 +2726,10 @@ ildouble: 3 ldouble: 3 Function: Imaginary part of "ctanh": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 2 ldouble: 2 @@ -2793,8 +2790,8 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ldouble: 1 ildouble: 1 +ldouble: 1 Function: "gamma": ildouble: 1 diff --git a/libc/sysdeps/sparc/fpu/libm-test-ulps b/libc/sysdeps/sparc/fpu/libm-test-ulps index d4e5e35bf..80ba338be 100644 --- a/libc/sysdeps/sparc/fpu/libm-test-ulps +++ b/libc/sysdeps/sparc/fpu/libm-test-ulps @@ -2102,11 +2102,6 @@ Test "sinh_upward (24) == 13244561064.92173614705070540368454568168": ildouble: 1 ldouble: 1 -# sqrt -Test "sqrt (2) == M_SQRT2l": -ildouble: 1 -ldouble: 1 - # tan_downward Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": float: 1 @@ -2921,10 +2916,6 @@ Function: "sinh_upward": ildouble: 1 ldouble: 1 -Function: "sqrt": -ildouble: 1 -ldouble: 1 - Function: "tan": double: 1 idouble: 1 diff --git a/libc/sysdeps/sparc/sparc64/memcpy.S b/libc/sysdeps/sparc/sparc64/memcpy.S index 668ebecef..837108857 100644 --- a/libc/sysdeps/sparc/sparc64/memcpy.S +++ b/libc/sysdeps/sparc/sparc64/memcpy.S @@ -79,7 +79,7 @@ #define UNEVEN_VISCHUNK(dest, f0, f1, left) \ subcc %left, 8, %left; \ bl,pn %xcc, 205f; \ - fsrc1 %f0, %f1; \ + fsrc2 %f0, %f1; \ ba,a,pt %xcc, 204f; /* Macros for non-VIS memcpy code. */ @@ -162,7 +162,7 @@ ENTRY(__memcpy_large) 3: andcc %o0, 0x38, %g5 /* IEU1 Group */ 201: be,pt %icc, 202f /* CTI */ mov 64, %g1 /* IEU0 */ - fmovd %f0, %f2 /* FPU */ + fsrc2 %f0, %f2 /* FPU */ sub %g1, %g5, %g5 /* IEU0 Group */ alignaddr %o1, %g0, %g1 /* GRU Group */ ldd [%g1], %f4 /* Load Group */ @@ -193,7 +193,7 @@ ENTRY(__memcpy_large) andn %o1, (0x40 - 1), %o1 /* IEU1 */ and %g2, 7, %g2 /* IEU0 Group */ andncc %g3, 0x7, %g3 /* IEU1 */ - fmovd %f0, %f2 /* FPU */ + fsrc2 %f0, %f2 /* FPU */ sub %g3, 0x10, %g3 /* IEU0 Group */ sub %o2, %g6, %o2 /* IEU1 */ alignaddr %g1, %g0, %g0 /* GRU Group */ @@ -541,7 +541,7 @@ ENTRY(memcpy) stb %g5, [%o0 - 1] /* Store */ 2: andn %o2, 7, %g5 /* IEU0 Group */ and %o2, 7, %o2 /* IEU1 */ - fmovd %f0, %f2 /* FPU */ + fsrc2 %f0, %f2 /* FPU */ alignaddr %o1, %g0, %g1 /* GRU Group */ ldd [%g1], %f4 /* Load Group */ 1: ldd [%g1 + 0x8], %f6 /* Load Group */ diff --git a/libc/sysdeps/sparc/sparc64/memset.S b/libc/sysdeps/sparc/sparc64/memset.S index b9c52aa9d..5e9293668 100644 --- a/libc/sysdeps/sparc/sparc64/memset.S +++ b/libc/sysdeps/sparc/sparc64/memset.S @@ -109,16 +109,16 @@ ENTRY(memset) membar #StoreStore | #LoadStore andcc %o3, 0xc0, %g5 and %o2, 0x3f, %o2 - fmovd %f0, %f2 - fmovd %f0, %f4 + fsrc2 %f0, %f2 + fsrc2 %f0, %f4 andn %o3, 0xff, %o3 - fmovd %f0, %f6 + fsrc2 %f0, %f6 cmp %g5, 64 - fmovd %f0, %f8 - fmovd %f0, %f10 - fmovd %f0, %f12 + fsrc2 %f0, %f8 + fsrc2 %f0, %f10 + fsrc2 %f0, %f12 brz,pn %g5, 10f - fmovd %f0, %f14 + fsrc2 %f0, %f14 be,pn %icc, 2f stda %f0, [%o0 + 0x00] %asi cmp %g5, 128 diff --git a/libc/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S b/libc/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S index 0e9442de5..fb815e5e5 100644 --- a/libc/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S +++ b/libc/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S @@ -58,49 +58,49 @@ faligndata %x7, %x8, %f14; #define FREG_MOVE_1(x0) \ - fmovd %x0, %f0; + fsrc2 %x0, %f0; #define FREG_MOVE_2(x0, x1) \ - fmovd %x0, %f0; \ - fmovd %x1, %f2; + fsrc2 %x0, %f0; \ + fsrc2 %x1, %f2; #define FREG_MOVE_3(x0, x1, x2) \ - fmovd %x0, %f0; \ - fmovd %x1, %f2; \ - fmovd %x2, %f4; + fsrc2 %x0, %f0; \ + fsrc2 %x1, %f2; \ + fsrc2 %x2, %f4; #define FREG_MOVE_4(x0, x1, x2, x3) \ - fmovd %x0, %f0; \ - fmovd %x1, %f2; \ - fmovd %x2, %f4; \ - fmovd %x3, %f6; + fsrc2 %x0, %f0; \ + fsrc2 %x1, %f2; \ + fsrc2 %x2, %f4; \ + fsrc2 %x3, %f6; #define FREG_MOVE_5(x0, x1, x2, x3, x4) \ - fmovd %x0, %f0; \ - fmovd %x1, %f2; \ - fmovd %x2, %f4; \ - fmovd %x3, %f6; \ - fmovd %x4, %f8; + fsrc2 %x0, %f0; \ + fsrc2 %x1, %f2; \ + fsrc2 %x2, %f4; \ + fsrc2 %x3, %f6; \ + fsrc2 %x4, %f8; #define FREG_MOVE_6(x0, x1, x2, x3, x4, x5) \ - fmovd %x0, %f0; \ - fmovd %x1, %f2; \ - fmovd %x2, %f4; \ - fmovd %x3, %f6; \ - fmovd %x4, %f8; \ - fmovd %x5, %f10; + fsrc2 %x0, %f0; \ + fsrc2 %x1, %f2; \ + fsrc2 %x2, %f4; \ + fsrc2 %x3, %f6; \ + fsrc2 %x4, %f8; \ + fsrc2 %x5, %f10; #define FREG_MOVE_7(x0, x1, x2, x3, x4, x5, x6) \ - fmovd %x0, %f0; \ - fmovd %x1, %f2; \ - fmovd %x2, %f4; \ - fmovd %x3, %f6; \ - fmovd %x4, %f8; \ - fmovd %x5, %f10; \ - fmovd %x6, %f12; + fsrc2 %x0, %f0; \ + fsrc2 %x1, %f2; \ + fsrc2 %x2, %f4; \ + fsrc2 %x3, %f6; \ + fsrc2 %x4, %f8; \ + fsrc2 %x5, %f10; \ + fsrc2 %x6, %f12; #define FREG_MOVE_8(x0, x1, x2, x3, x4, x5, x6, x7) \ - fmovd %x0, %f0; \ - fmovd %x1, %f2; \ - fmovd %x2, %f4; \ - fmovd %x3, %f6; \ - fmovd %x4, %f8; \ - fmovd %x5, %f10; \ - fmovd %x6, %f12; \ - fmovd %x7, %f14; + fsrc2 %x0, %f0; \ + fsrc2 %x1, %f2; \ + fsrc2 %x2, %f4; \ + fsrc2 %x3, %f6; \ + fsrc2 %x4, %f8; \ + fsrc2 %x5, %f10; \ + fsrc2 %x6, %f12; \ + fsrc2 %x7, %f14; #define FREG_LOAD_1(base, x0) \ LOAD(ldd, base + 0x00, %x0) #define FREG_LOAD_2(base, x0, x1) \ diff --git a/libc/sysdeps/unix/sysv/linux/Makefile b/libc/sysdeps/unix/sysv/linux/Makefile index 21b560790..ddae6862b 100644 --- a/libc/sysdeps/unix/sysv/linux/Makefile +++ b/libc/sysdeps/unix/sysv/linux/Makefile @@ -36,7 +36,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \ bits/a.out.h sys/inotify.h sys/signalfd.h sys/eventfd.h \ sys/timerfd.h sys/fanotify.h bits/eventfd.h bits/inotify.h \ bits/signalfd.h bits/timerfd.h bits/epoll.h \ - bits/socket_type.h bits/syscall.h + bits/socket_type.h bits/syscall.h bits/sysctl.h tests += tst-clone diff --git a/libc/sysdeps/unix/sysv/linux/i386/bits/a.out.h b/libc/sysdeps/unix/sysv/linux/i386/bits/a.out.h deleted file mode 100644 index 0fb52c381..000000000 --- a/libc/sysdeps/unix/sysv/linux/i386/bits/a.out.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifndef __A_OUT_GNU_H__ -# error "Never use <bits/a.out.h> directly; include <a.out.h> instead." -#endif diff --git a/libc/sysdeps/unix/sysv/linux/i386/bits/environments.h b/libc/sysdeps/unix/sysv/linux/i386/bits/environments.h deleted file mode 100644 index d4afd1294..000000000 --- a/libc/sysdeps/unix/sysv/linux/i386/bits/environments.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright (C) 1999, 2001, 2004, 2009 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 - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _UNISTD_H -# error "Never include this file directly. Use <unistd.h> instead" -#endif - -/* This header should define the following symbols under the described - situations. A value `1' means that the model is always supported, - `-1' means it is never supported. Undefined means it cannot be - statically decided. - - _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type - _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type - - _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type - _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type - - The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, - _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, - _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were - used in previous versions of the Unix standard and are available - only for compatibility. -*/ - -/* By default we have 32-bit wide `int', `long int', pointers and `off_t' - and all platforms support LFS. */ -#define _POSIX_V7_ILP32_OFF32 1 -#define _POSIX_V7_ILP32_OFFBIG 1 -#define _POSIX_V6_ILP32_OFF32 1 -#define _POSIX_V6_ILP32_OFFBIG 1 -#define _XBS5_ILP32_OFF32 1 -#define _XBS5_ILP32_OFFBIG 1 - -/* We optionally provide an environment with the above size but an 64-bit - side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ - -/* Environments with 64-bit wide pointers can be provided, - so these macros aren't defined: - # undef _POSIX_V7_LP64_OFF64 - # undef _POSIX_V7_LPBIG_OFFBIG - # undef _POSIX_V6_LP64_OFF64 - # undef _POSIX_V6_LPBIG_OFFBIG - # undef _XBS5_LP64_OFF64 - # undef _XBS5_LPBIG_OFFBIG - and sysconf tests for it at runtime. */ - -#define __ILP32_OFF32_CFLAGS "-m32" -#define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" -#define __ILP32_OFF32_LDFLAGS "-m32" -#define __ILP32_OFFBIG_LDFLAGS "-m32" -#define __LP64_OFF64_CFLAGS "-m64" -#define __LP64_OFF64_LDFLAGS "-m64" diff --git a/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h b/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h deleted file mode 100644 index 5406b4cd0..000000000 --- a/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h +++ /dev/null @@ -1,321 +0,0 @@ -/* O_*, F_*, FD_* bit values for Linux. - Copyright (C) 1995-1998, 2000, 2004, 2006, 2007, 2009, 2010, 2011 - 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 - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _FCNTL_H -# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." -#endif - -#include <sys/types.h> -#ifdef __USE_GNU -# include <bits/uio.h> -#endif - - -/* open/fcntl - O_SYNC is only implemented on blocks devices and on files - located on a few file systems. */ -#define O_ACCMODE 0003 -#define O_RDONLY 00 -#define O_WRONLY 01 -#define O_RDWR 02 -#define O_CREAT 0100 /* not fcntl */ -#define O_EXCL 0200 /* not fcntl */ -#define O_NOCTTY 0400 /* not fcntl */ -#define O_TRUNC 01000 /* not fcntl */ -#define O_APPEND 02000 -#define O_NONBLOCK 04000 -#define O_NDELAY O_NONBLOCK -#define O_SYNC 04010000 -#define O_FSYNC O_SYNC -#define O_ASYNC 020000 - -#ifdef __USE_XOPEN2K8 -# define O_DIRECTORY 0200000 /* Must be a directory. */ -# define O_NOFOLLOW 0400000 /* Do not follow links. */ -# define O_CLOEXEC 02000000 /* Set close_on_exec. */ -#endif -#ifdef __USE_GNU -# define O_DIRECT 040000 /* Direct disk access. */ -# define O_NOATIME 01000000 /* Do not set atime. */ -# define O_PATH 010000000 /* Resolve pathname but do not open file. */ -#endif - -/* For now Linux has synchronisity options for data and read operations. - We define the symbols here but let them do the same as O_SYNC since - this is a superset. */ -#if defined __USE_POSIX199309 || defined __USE_UNIX98 -# define O_DSYNC 010000 /* Synchronize data. */ -# define O_RSYNC O_SYNC /* Synchronize read operations. */ -#endif - -#ifdef __USE_LARGEFILE64 -# define O_LARGEFILE 0100000 -#endif - -/* Values for the second argument to `fcntl'. */ -#define F_DUPFD 0 /* Duplicate file descriptor. */ -#define F_GETFD 1 /* Get file descriptor flags. */ -#define F_SETFD 2 /* Set file descriptor flags. */ -#define F_GETFL 3 /* Get file status flags. */ -#define F_SETFL 4 /* Set file status flags. */ -#ifndef __USE_FILE_OFFSET64 -# define F_GETLK 5 /* Get record locking info. */ -# define F_SETLK 6 /* Set record locking info (non-blocking). */ -# define F_SETLKW 7 /* Set record locking info (blocking). */ -#else -# define F_GETLK F_GETLK64 /* Get record locking info. */ -# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/ -# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */ -#endif -#define F_GETLK64 12 /* Get record locking info. */ -#define F_SETLK64 13 /* Set record locking info (non-blocking). */ -#define F_SETLKW64 14 /* Set record locking info (blocking). */ - -#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8 -# define F_SETOWN 8 /* Get owner (process receiving SIGIO). */ -# define F_GETOWN 9 /* Set owner (process receiving SIGIO). */ -#endif - -#ifdef __USE_GNU -# define F_SETSIG 10 /* Set number of signal to be sent. */ -# define F_GETSIG 11 /* Get number of signal to be sent. */ -# define F_SETOWN_EX 15 /* Get owner (thread receiving SIGIO). */ -# define F_GETOWN_EX 16 /* Set owner (thread receiving SIGIO). */ -#endif - -#ifdef __USE_GNU -# define F_SETLEASE 1024 /* Set a lease. */ -# define F_GETLEASE 1025 /* Enquire what lease is active. */ -# define F_NOTIFY 1026 /* Request notfications on a directory. */ -# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */ -# define F_GETPIPE_SZ 1032 /* Set pipe page size array. */ -#endif -#ifdef __USE_XOPEN2K8 -# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with - close-on-exit set. */ -#endif - -/* For F_[GET|SET]FD. */ -#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ - -/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */ -#define F_RDLCK 0 /* Read lock. */ -#define F_WRLCK 1 /* Write lock. */ -#define F_UNLCK 2 /* Remove lock. */ - -/* For old implementation of bsd flock(). */ -#define F_EXLCK 4 /* or 3 */ -#define F_SHLCK 8 /* or 4 */ - -#ifdef __USE_BSD -/* Operations for bsd flock(), also used by the kernel implementation. */ -# define LOCK_SH 1 /* shared lock */ -# define LOCK_EX 2 /* exclusive lock */ -# define LOCK_NB 4 /* or'd with one of the above to prevent - blocking */ -# define LOCK_UN 8 /* remove lock */ -#endif - -#ifdef __USE_GNU -# define LOCK_MAND 32 /* This is a mandatory flock: */ -# define LOCK_READ 64 /* ... which allows concurrent read operations. */ -# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */ -# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */ -#endif - -#ifdef __USE_GNU -/* Types of directory notifications that may be requested with F_NOTIFY. */ -# define DN_ACCESS 0x00000001 /* File accessed. */ -# define DN_MODIFY 0x00000002 /* File modified. */ -# define DN_CREATE 0x00000004 /* File created. */ -# define DN_DELETE 0x00000008 /* File removed. */ -# define DN_RENAME 0x00000010 /* File renamed. */ -# define DN_ATTRIB 0x00000020 /* File changed attibutes. */ -# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */ -#endif - -struct flock - { - short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ - short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ -#ifndef __USE_FILE_OFFSET64 - __off_t l_start; /* Offset where the lock begins. */ - __off_t l_len; /* Size of the locked area; zero means until EOF. */ -#else - __off64_t l_start; /* Offset where the lock begins. */ - __off64_t l_len; /* Size of the locked area; zero means until EOF. */ -#endif - __pid_t l_pid; /* Process holding the lock. */ - }; - -#ifdef __USE_LARGEFILE64 -struct flock64 - { - short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ - short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ - __off64_t l_start; /* Offset where the lock begins. */ - __off64_t l_len; /* Size of the locked area; zero means until EOF. */ - __pid_t l_pid; /* Process holding the lock. */ - }; -#endif - -#ifdef __USE_GNU -/* Owner types. */ -enum __pid_type - { - F_OWNER_TID = 0, /* Kernel thread. */ - F_OWNER_PID, /* Process. */ - F_OWNER_PGRP, /* Process group. */ - F_OWNER_GID = F_OWNER_PGRP /* Alternative, obsolete name. */ - }; - -/* Structure to use with F_GETOWN_EX and F_SETOWN_EX. */ -struct f_owner_ex - { - enum __pid_type type; /* Owner type of ID. */ - __pid_t pid; /* ID of owner. */ - }; -#endif - -/* Define some more compatibility macros to be backward compatible with - BSD systems which did not managed to hide these kernel macros. */ -#ifdef __USE_BSD -# define FAPPEND O_APPEND -# define FFSYNC O_FSYNC -# define FASYNC O_ASYNC -# define FNONBLOCK O_NONBLOCK -# define FNDELAY O_NDELAY -#endif /* Use BSD. */ - -/* Advise to `posix_fadvise'. */ -#ifdef __USE_XOPEN2K -# define POSIX_FADV_NORMAL 0 /* No further special treatment. */ -# define POSIX_FADV_RANDOM 1 /* Expect random page references. */ -# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */ -# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */ -# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ -#endif - - -#ifdef __USE_GNU -/* Flags for SYNC_FILE_RANGE. */ -# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages - in the range before performing the - write. */ -# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those - dirty pages in the range which are - not presently under writeback. */ -# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in - the range after performing the - write. */ - -/* Flags for SPLICE and VMSPLICE. */ -# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */ -# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing - (but we may still block on the fd - we splice from/to). */ -# define SPLICE_F_MORE 4 /* Expect more data. */ -# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ - - -/* File handle structure. */ -struct file_handle -{ - unsigned int handle_bytes; - int handle_type; - /* File identifier. */ - unsigned char f_handle[0]; -}; - -/* Maximum handle size (for now). */ -# define MAX_HANDLE_SZ 128 -#endif - -__BEGIN_DECLS - -#ifdef __USE_GNU - -/* Provide kernel hint to read ahead. */ -extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) - __THROW; - - -/* Selective file content synch'ing. */ -extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count, - unsigned int __flags); - - -/* Splice address range into a pipe. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, - size_t __count, unsigned int __flags); - -/* Splice two files together. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, - __off64_t *__offout, size_t __len, - unsigned int __flags); - -/* In-kernel implementation of tee for pipe buffers. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -extern ssize_t tee (int __fdin, int __fdout, size_t __len, - unsigned int __flags); - -/* Reserve storage for the data of the file associated with FD. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -# ifndef __USE_FILE_OFFSET64 -extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len); -# else -# ifdef __REDIRECT -extern int __REDIRECT (fallocate, (int __fd, int __mode, __off64_t __offset, - __off64_t __len), - fallocate64); -# else -# define fallocate fallocate64 -# endif -# endif -# ifdef __USE_LARGEFILE64 -extern int fallocate64 (int __fd, int __mode, __off64_t __offset, - __off64_t __len); -# endif - - -/* Map file name to file handle. */ -extern int name_to_handle_at (int __dfd, const char *__name, - struct file_handle *__handle, int *__mnt_id, - int __flags) __THROW; - -/* Open file using the file handle. - - This function is a possible cancellation point and therefore not - marked with __THROW. */ -extern int open_by_handle_at (int __mountdirfd, struct file_handle *__handle, - int __flags); - -#endif - -__END_DECLS diff --git a/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h b/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h deleted file mode 100644 index 2bc2ca9d3..000000000 --- a/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h +++ /dev/null @@ -1,112 +0,0 @@ -/* Definitions for POSIX memory map interface. Linux/i386 version. - Copyright (C) 1997-2012 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 - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _SYS_MMAN_H -# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead." -#endif - -/* The following definitions basically come from the kernel headers. - But the kernel header is not namespace clean. */ - - -/* Protections are chosen from these bits, OR'd together. The - implementation does not necessarily support PROT_EXEC or PROT_WRITE - without PROT_READ. The only guarantees are that no writing will be - allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ - -#define PROT_READ 0x1 /* Page can be read. */ -#define PROT_WRITE 0x2 /* Page can be written. */ -#define PROT_EXEC 0x4 /* Page can be executed. */ -#define PROT_NONE 0x0 /* Page can not be accessed. */ -#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of - growsdown vma (mprotect only). */ -#define PROT_GROWSUP 0x02000000 /* Extend change to start of - growsup vma (mprotect only). */ - -/* Sharing types (must choose one and only one of these). */ -#define MAP_SHARED 0x01 /* Share changes. */ -#define MAP_PRIVATE 0x02 /* Changes are private. */ -#ifdef __USE_MISC -# define MAP_TYPE 0x0f /* Mask for type of mapping. */ -#endif - -/* Other flags. */ -#define MAP_FIXED 0x10 /* Interpret addr exactly. */ -#ifdef __USE_MISC -# define MAP_FILE 0 -# define MAP_ANONYMOUS 0x20 /* Don't use a file. */ -# define MAP_ANON MAP_ANONYMOUS -#endif - -/* These are Linux-specific. */ -#ifdef __USE_MISC -# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */ -# define MAP_DENYWRITE 0x00800 /* ETXTBSY */ -# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */ -# define MAP_LOCKED 0x02000 /* Lock the mapping. */ -# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */ -# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ -# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ -# define MAP_STACK 0x20000 /* Allocation is for a stack. */ -# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ -#endif - -/* Flags to `msync'. */ -#define MS_ASYNC 1 /* Sync memory asynchronously. */ -#define MS_SYNC 4 /* Synchronous memory sync. */ -#define MS_INVALIDATE 2 /* Invalidate the caches. */ - -/* Flags for `mlockall'. */ -#define MCL_CURRENT 1 /* Lock all currently mapped pages. */ -#define MCL_FUTURE 2 /* Lock all additions to address - space. */ - -/* Flags for `mremap'. */ -#ifdef __USE_GNU -# define MREMAP_MAYMOVE 1 -# define MREMAP_FIXED 2 -#endif - -/* Advice to `madvise'. */ -#ifdef __USE_BSD -# define MADV_NORMAL 0 /* No further special treatment. */ -# define MADV_RANDOM 1 /* Expect random page references. */ -# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define MADV_WILLNEED 3 /* Will need these pages. */ -# define MADV_DONTNEED 4 /* Don't need these pages. */ -# define MADV_REMOVE 9 /* Remove these pages and resources. */ -# define MADV_DONTFORK 10 /* Do not inherit across fork. */ -# define MADV_DOFORK 11 /* Do inherit across fork. */ -# define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ -# define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ -# define MADV_HUGEPAGE 14 /* Worth backing with hugepages. */ -# define MADV_NOHUGEPAGE 15 /* Not worth backing with hugepages. */ -# define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, - overrides the coredump filter bits. */ -# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */ -# define MADV_HWPOISON 100 /* Poison a page for testing. */ -#endif - -/* The POSIX people had to invent similar names for the same things. */ -#ifdef __USE_XOPEN2K -# define POSIX_MADV_NORMAL 0 /* No further special treatment. */ -# define POSIX_MADV_RANDOM 1 /* Expect random page references. */ -# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */ -# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */ -#endif diff --git a/libc/sysdeps/unix/sysv/linux/i386/bits/wchar.h b/libc/sysdeps/unix/sysv/linux/i386/bits/wchar.h index b94fc7a3f..ec0f34a47 100644 --- a/libc/sysdeps/unix/sysv/linux/i386/bits/wchar.h +++ b/libc/sysdeps/unix/sysv/linux/i386/bits/wchar.h @@ -1,5 +1,5 @@ -/* wchar_t type related definitions. - Copyright (C) 2000 Free Software Foundation, Inc. +/* wchar_t type related definitions. i386/x86-64 version. + Copyright (C) 2000-2012 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 @@ -19,7 +19,14 @@ #ifndef _BITS_WCHAR_H #define _BITS_WCHAR_H 1 -#define __WCHAR_MIN (-2147483647l - 1l) -#define __WCHAR_MAX (2147483647l) +#include <bits/wordsize.h> + +#if __WORDSIZE == 64 +# define __WCHAR_MIN (-2147483647 - 1) +# define __WCHAR_MAX (2147483647) +#else +# define __WCHAR_MIN (-2147483647l - 1l) +# define __WCHAR_MAX (2147483647l) +#endif #endif /* bits/wchar.h */ diff --git a/libc/sysdeps/unix/sysv/linux/i386/sys/elf.h b/libc/sysdeps/unix/sysv/linux/i386/sys/elf.h index 9d64e9768..1f4524cba 100644 --- a/libc/sysdeps/unix/sysv/linux/i386/sys/elf.h +++ b/libc/sysdeps/unix/sysv/linux/i386/sys/elf.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1998-2012 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 @@ -18,8 +18,12 @@ #ifndef _SYS_ELF_H #define _SYS_ELF_H 1 -#warning "This header is obsolete; use <sys/procfs.h> instead." +#ifdef __x86_64__ +# error This header is unsupported on x86-64. +#else +# warning "This header is obsolete; use <sys/procfs.h> instead." -#include <sys/procfs.h> +# include <sys/procfs.h> +#endif #endif /* _SYS_ELF_H */ diff --git a/libc/sysdeps/unix/sysv/linux/i386/sys/procfs.h b/libc/sysdeps/unix/sysv/linux/i386/sys/procfs.h deleted file mode 100644 index 673baa1ec..000000000 --- a/libc/sysdeps/unix/sysv/linux/i386/sys/procfs.h +++ /dev/null @@ -1,130 +0,0 @@ -/* Copyright (C) 1996, 1997, 1999, 2000 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 - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _SYS_PROCFS_H -#define _SYS_PROCFS_H 1 - -/* This is somewhat modelled after the file of the same name on SVR4 - systems. It provides a definition of the core file format for ELF - used on Linux. It doesn't have anything to do with the /proc file - system, even though Linux has one. - - Anyway, the whole purpose of this file is for GDB and GDB only. - Don't read too much into it. Don't use it for anything other than - GDB unless you know what you are doing. */ - -#include <features.h> -#include <sys/time.h> -#include <sys/types.h> -#include <sys/user.h> - -__BEGIN_DECLS - -/* Type for a general-purpose register. */ -typedef unsigned long elf_greg_t; - -/* And the whole bunch of them. We could have used `struct - user_regs_struct' directly in the typedef, but tradition says that - the register set is an array, which does have some peculiar - semantics, so leave it that way. */ -#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t)) -typedef elf_greg_t elf_gregset_t[ELF_NGREG]; - -/* Register set for the floating-point registers. */ -typedef struct user_fpregs_struct elf_fpregset_t; - -/* Register set for the extended floating-point registers. Includes - the Pentium III SSE registers in addition to the classic - floating-point stuff. */ -typedef struct user_fpxregs_struct elf_fpxregset_t; - - -/* Signal info. */ -struct elf_siginfo - { - int si_signo; /* Signal number. */ - int si_code; /* Extra code. */ - int si_errno; /* Errno. */ - }; - - -/* Definitions to generate Intel SVR4-like core files. These mostly - have the same names as the SVR4 types with "elf_" tacked on the - front to prevent clashes with Linux definitions, and the typedef - forms have been avoided. This is mostly like the SVR4 structure, - but more Linuxy, with things that Linux does not support and which - GDB doesn't really use excluded. */ - -struct elf_prstatus - { - struct elf_siginfo pr_info; /* Info associated with signal. */ - short int pr_cursig; /* Current signal. */ - unsigned long int pr_sigpend; /* Set of pending signals. */ - unsigned long int pr_sighold; /* Set of held signals. */ - __pid_t pr_pid; - __pid_t pr_ppid; - __pid_t pr_pgrp; - __pid_t pr_sid; - struct timeval pr_utime; /* User time. */ - struct timeval pr_stime; /* System time. */ - struct timeval pr_cutime; /* Cumulative user time. */ - struct timeval pr_cstime; /* Cumulative system time. */ - elf_gregset_t pr_reg; /* GP registers. */ - int pr_fpvalid; /* True if math copro being used. */ - }; - - -#define ELF_PRARGSZ (80) /* Number of chars for args. */ - -struct elf_prpsinfo - { - char pr_state; /* Numeric process state. */ - char pr_sname; /* Char for pr_state. */ - char pr_zomb; /* Zombie. */ - char pr_nice; /* Nice val. */ - unsigned long int pr_flag; /* Flags. */ - unsigned short int pr_uid; - unsigned short int pr_gid; - int pr_pid, pr_ppid, pr_pgrp, pr_sid; - /* Lots missing */ - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */ - }; - - -/* The rest of this file provides the types for emulation of the - Solaris <proc_service.h> interfaces that should be implemented by - users of libthread_db. */ - -/* Addresses. */ -typedef void *psaddr_t; - -/* Register sets. Linux has different names. */ -typedef elf_gregset_t prgregset_t; -typedef elf_fpregset_t prfpregset_t; - -/* We don't have any differences between processes and threads, - therefore have only one PID type. */ -typedef __pid_t lwpid_t; - -/* Process status and info. In the end we do provide typedefs for them. */ -typedef struct elf_prstatus prstatus_t; -typedef struct elf_prpsinfo prpsinfo_t; - -__END_DECLS - -#endif /* sys/procfs.h */ diff --git a/libc/sysdeps/unix/sysv/linux/i386/sys/ucontext.h b/libc/sysdeps/unix/sysv/linux/i386/sys/ucontext.h deleted file mode 100644 index 6306623ab..000000000 --- a/libc/sysdeps/unix/sysv/linux/i386/sys/ucontext.h +++ /dev/null @@ -1,128 +0,0 @@ -/* Copyright (C) 1997, 1998, 1999, 2000 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 - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 - -#include <features.h> -#include <signal.h> - -/* We need the signal context definitions even if they are not used - included in <signal.h>. */ -#include <bits/sigcontext.h> - - -/* Type for general register. */ -typedef int greg_t; - -/* Number of general registers. */ -#define NGREG 19 - -/* Container for all general registers. */ -typedef greg_t gregset_t[NGREG]; - -#ifdef __USE_GNU -/* Number of each register is the `gregset_t' array. */ -enum -{ - REG_GS = 0, -# define REG_GS REG_GS - REG_FS, -# define REG_FS REG_FS - REG_ES, -# define REG_ES REG_ES - REG_DS, -# define REG_DS REG_DS - REG_EDI, -# define REG_EDI REG_EDI - REG_ESI, -# define REG_ESI REG_ESI - REG_EBP, -# define REG_EBP REG_EBP - REG_ESP, -# define REG_ESP REG_ESP - REG_EBX, -# define REG_EBX REG_EBX - REG_EDX, -# define REG_EDX REG_EDX - REG_ECX, -# define REG_ECX REG_ECX - REG_EAX, -# define REG_EAX REG_EAX - REG_TRAPNO, -# define REG_TRAPNO REG_TRAPNO - REG_ERR, -# define REG_ERR REG_ERR - REG_EIP, -# define REG_EIP REG_EIP - REG_CS, -# define REG_CS REG_CS - REG_EFL, -# define REG_EFL REG_EFL - REG_UESP, -# define REG_UESP REG_UESP - REG_SS -# define REG_SS REG_SS -}; -#endif - -/* Definitions taken from the kernel headers. */ -struct _libc_fpreg -{ - unsigned short int significand[4]; - unsigned short int exponent; -}; - -struct _libc_fpstate -{ - unsigned long int cw; - unsigned long int sw; - unsigned long int tag; - unsigned long int ipoff; - unsigned long int cssel; - unsigned long int dataoff; - unsigned long int datasel; - struct _libc_fpreg _st[8]; - unsigned long int status; -}; - -/* Structure to describe FPU registers. */ -typedef struct _libc_fpstate *fpregset_t; - -/* Context to describe whole processor state. */ -typedef struct - { - gregset_t gregs; - /* Due to Linux's history we have to use a pointer here. The SysV/i386 - ABI requires a struct with the values. */ - fpregset_t fpregs; - unsigned long int oldmask; - unsigned long int cr2; - } mcontext_t; - -/* Userlevel context. */ -typedef struct ucontext - { - unsigned long int uc_flags; - struct ucontext *uc_link; - stack_t uc_stack; - mcontext_t uc_mcontext; - __sigset_t uc_sigmask; - struct _libc_fpstate __fpregs_mem; - } ucontext_t; - -#endif /* sys/ucontext.h */ diff --git a/libc/sysdeps/unix/sysv/linux/i386/sys/user.h b/libc/sysdeps/unix/sysv/linux/i386/sys/user.h deleted file mode 100644 index e426afed6..000000000 --- a/libc/sysdeps/unix/sysv/linux/i386/sys/user.h +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright (C) 1998, 2000 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 - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _SYS_USER_H -#define _SYS_USER_H 1 - -/* The whole purpose of this file is for GDB and GDB only. Don't read - too much into it. Don't use it for anything other than GDB unless - you know what you are doing. */ - -struct user_fpregs_struct -{ - long int cwd; - long int swd; - long int twd; - long int fip; - long int fcs; - long int foo; - long int fos; - long int st_space [20]; -}; - -struct user_fpxregs_struct -{ - unsigned short int cwd; - unsigned short int swd; - unsigned short int twd; - unsigned short int fop; - long int fip; - long int fcs; - long int foo; - long int fos; - long int mxcsr; - long int reserved; - long int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ - long int xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */ - long int padding[56]; -}; - -struct user_regs_struct -{ - long int ebx; - long int ecx; - long int edx; - long int esi; - long int edi; - long int ebp; - long int eax; - long int xds; - long int xes; - long int xfs; - long int xgs; - long int orig_eax; - long int eip; - long int xcs; - long int eflags; - long int esp; - long int xss; -}; - -struct user -{ - struct user_regs_struct regs; - int u_fpvalid; - struct user_fpregs_struct i387; - unsigned long int u_tsize; - unsigned long int u_dsize; - unsigned long int u_ssize; - unsigned long start_code; - unsigned long start_stack; - long int signal; - int reserved; - struct user_regs_struct* u_ar0; - struct user_fpregs_struct* u_fpstate; - unsigned long int magic; - char u_comm [32]; - int u_debugreg [8]; -}; - -#define PAGE_SHIFT 12 -#define PAGE_SIZE (1UL << PAGE_SHIFT) -#define PAGE_MASK (~(PAGE_SIZE-1)) -#define NBPG PAGE_SIZE -#define UPAGES 1 -#define HOST_TEXT_START_ADDR (u.start_code) -#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) - -#endif /* _SYS_USER_H */ diff --git a/libc/sysdeps/unix/sysv/linux/i386/sys/vm86.h b/libc/sysdeps/unix/sysv/linux/i386/sys/vm86.h index cd2ac0716..c41b55d7b 100644 --- a/libc/sysdeps/unix/sysv/linux/i386/sys/vm86.h +++ b/libc/sysdeps/unix/sysv/linux/i386/sys/vm86.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1999, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1996-2012 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 @@ -20,8 +20,11 @@ #define _SYS_VM86_H 1 #include <features.h> +#ifdef __x86_64__ +# error This header is unsupported on x86-64. +#else /* Get constants and data types from kernel header file. */ -#include <asm/vm86.h> +# include <asm/vm86.h> __BEGIN_DECLS @@ -30,5 +33,6 @@ extern int vm86 (unsigned long int __subfunction, struct vm86plus_struct *__info) __THROW; __END_DECLS +# endif #endif /* _SYS_VM86_H */ diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/a.out.h b/libc/sysdeps/unix/sysv/linux/x86/bits/a.out.h index 0e4a7c911..0e4a7c911 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/a.out.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/a.out.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/environments.h b/libc/sysdeps/unix/sysv/linux/x86/bits/environments.h index 793a04fdb..793a04fdb 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/environments.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/environments.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/epoll.h b/libc/sysdeps/unix/sysv/linux/x86/bits/epoll.h index be1f5a636..be1f5a636 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/epoll.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/epoll.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h b/libc/sysdeps/unix/sysv/linux/x86/bits/fcntl.h index 9fa5ecb72..9fa5ecb72 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/fcntl.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/ipctypes.h b/libc/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h index 7c242adfa..7c242adfa 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/ipctypes.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h b/libc/sysdeps/unix/sysv/linux/x86/bits/mman.h index 28b91603c..28b91603c 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/mman.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/msq.h b/libc/sysdeps/unix/sysv/linux/x86/bits/msq.h index 7f2350074..7f2350074 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/msq.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/msq.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/sem.h b/libc/sysdeps/unix/sysv/linux/x86/bits/sem.h index 92bbceff9..92bbceff9 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/sem.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/sem.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/shm.h b/libc/sysdeps/unix/sysv/linux/x86/bits/shm.h index cba25ed25..cba25ed25 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/shm.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/shm.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h b/libc/sysdeps/unix/sysv/linux/x86/bits/siginfo.h index 2e05e6528..2e05e6528 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/siginfo.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/stat.h b/libc/sysdeps/unix/sysv/linux/x86/bits/stat.h index 691c4370e..e4c0b24ee 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/stat.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/stat.h @@ -23,9 +23,9 @@ #define _BITS_STAT_H 1 /* Versions of the `struct stat' data structure. */ -#define _STAT_VER_KERNEL 0 - #ifndef __x86_64__ +# define _STAT_VER_LINUX_OLD 1 +# define _STAT_VER_KERNEL 1 # define _STAT_VER_SVR4 2 # define _STAT_VER_LINUX 3 @@ -34,6 +34,7 @@ # define _MKNOD_VER_SVR4 2 # define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */ #else +# define _STAT_VER_KERNEL 0 # define _STAT_VER_LINUX 1 /* x86-64 versions of the `xmknod' interface. */ @@ -151,9 +152,6 @@ struct stat64 struct timespec st_atim; /* Time of last access. */ struct timespec st_mtim; /* Time of last modification. */ struct timespec st_ctim; /* Time of last status change. */ -# define st_atime st_atim.tv_sec /* Backward compatibility. */ -# define st_mtime st_mtim.tv_sec -# define st_ctime st_ctim.tv_sec # else __time_t st_atime; /* Time of last access. */ __syscall_ulong_t st_atimensec; /* Nscecs of last access. */ diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/sysctl.h b/libc/sysdeps/unix/sysv/linux/x86/bits/sysctl.h index 520ccb97e..520ccb97e 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/sysctl.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/sysctl.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h b/libc/sysdeps/unix/sysv/linux/x86/bits/typesizes.h index a52a1d3f6..be8985b4c 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h +++ b/libc/sysdeps/unix/sysv/linux/x86/bits/typesizes.h @@ -43,8 +43,10 @@ #define __MODE_T_TYPE __U32_TYPE #ifdef __x86_64__ # define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE +# define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE #else # define __NLINK_T_TYPE __UWORD_TYPE +# define __FSWORD_T_TYPE __SWORD_TYPE #endif #define __OFF_T_TYPE __SYSCALL_SLONG_TYPE #define __OFF64_T_TYPE __SQUAD_TYPE @@ -57,7 +59,6 @@ #define __FSBLKCNT64_T_TYPE __UQUAD_TYPE #define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE #define __FSFILCNT64_T_TYPE __UQUAD_TYPE -#define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE #define __ID_T_TYPE __U32_TYPE #define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE #define __TIME_T_TYPE __SYSCALL_SLONG_TYPE diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h b/libc/sysdeps/unix/sysv/linux/x86/sys/procfs.h index d7a0c88cd..d7a0c88cd 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h +++ b/libc/sysdeps/unix/sysv/linux/x86/sys/procfs.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h b/libc/sysdeps/unix/sysv/linux/x86/sys/ucontext.h index 7a3938cbc..7a3938cbc 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h +++ b/libc/sysdeps/unix/sysv/linux/x86/sys/ucontext.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/sys/user.h b/libc/sysdeps/unix/sysv/linux/x86/sys/user.h index 9db293713..9db293713 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/sys/user.h +++ b/libc/sysdeps/unix/sysv/linux/x86/sys/user.h diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/sys/io.h b/libc/sysdeps/unix/sysv/linux/x86_64/sys/io.h index d8fc27190..534b6d3a0 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/sys/io.h +++ b/libc/sysdeps/unix/sysv/linux/x86_64/sys/io.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 2000, 2002, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1996-2012 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 @@ -133,45 +133,48 @@ outl_p (unsigned int __value, unsigned short int __port) } static __inline void -insb (unsigned short int __port, void *addr, unsigned long int __count) +insb (unsigned short int __port, void *__addr, unsigned long int __count) { - __asm__ __volatile__ ("cld ; rep ; insb":"=D" (addr), "=c" (__count) - :"d" (__port), "0" (addr), "1" (__count)); + __asm__ __volatile__ ("cld ; rep ; insb":"=D" (__addr), "=c" (__count) + :"d" (__port), "0" (__addr), "1" (__count)); } static __inline void -insw (unsigned short int __port, void *addr, unsigned long int __count) +insw (unsigned short int __port, void *__addr, unsigned long int __count) { - __asm__ __volatile__ ("cld ; rep ; insw":"=D" (addr), "=c" (__count) - :"d" (__port), "0" (addr), "1" (__count)); + __asm__ __volatile__ ("cld ; rep ; insw":"=D" (__addr), "=c" (__count) + :"d" (__port), "0" (__addr), "1" (__count)); } static __inline void -insl (unsigned short int __port, void *addr, unsigned long int __count) +insl (unsigned short int __port, void *__addr, unsigned long int __count) { - __asm__ __volatile__ ("cld ; rep ; insl":"=D" (addr), "=c" (__count) - :"d" (__port), "0" (addr), "1" (__count)); + __asm__ __volatile__ ("cld ; rep ; insl":"=D" (__addr), "=c" (__count) + :"d" (__port), "0" (__addr), "1" (__count)); } static __inline void -outsb (unsigned short int __port, const void *addr, unsigned long int __count) +outsb (unsigned short int __port, const void *__addr, + unsigned long int __count) { - __asm__ __volatile__ ("cld ; rep ; outsb":"=S" (addr), "=c" (__count) - :"d" (__port), "0" (addr), "1" (__count)); + __asm__ __volatile__ ("cld ; rep ; outsb":"=S" (__addr), "=c" (__count) + :"d" (__port), "0" (__addr), "1" (__count)); } static __inline void -outsw (unsigned short int __port, const void *addr, unsigned long int __count) +outsw (unsigned short int __port, const void *__addr, + unsigned long int __count) { - __asm__ __volatile__ ("cld ; rep ; outsw":"=S" (addr), "=c" (__count) - :"d" (__port), "0" (addr), "1" (__count)); + __asm__ __volatile__ ("cld ; rep ; outsw":"=S" (____addr), "=c" (__count) + :"d" (__port), "0" (__addr), "1" (__count)); } static __inline void -outsl (unsigned short int __port, const void *addr, unsigned long int __count) +outsl (unsigned short int __port, const void *__addr, + unsigned long int __count) { - __asm__ __volatile__ ("cld ; rep ; outsl":"=S" (addr), "=c" (__count) - :"d" (__port), "0" (addr), "1" (__count)); + __asm__ __volatile__ ("cld ; rep ; outsl":"=S" (__addr), "=c" (__count) + :"d" (__port), "0" (__addr), "1" (__count)); } #endif /* GNU C */ diff --git a/libc/wcsmbs/Makefile b/libc/wcsmbs/Makefile index 660469f1c..b17c1d38d 100644 --- a/libc/wcsmbs/Makefile +++ b/libc/wcsmbs/Makefile @@ -77,7 +77,7 @@ CFLAGS-wcstoull_l.c = $(strtox-CFLAGS) CFLAGS-wcstod_l.c = $(strtox-CFLAGS) CFLAGS-wcstold_l.c = $(strtox-CFLAGS) CFLAGS-wcstof_l.c = $(strtox-CFLAGS) -CFLAGS-tst-wchar-h.c = -D_FORTIFY_SOURCE=2 +CPPFLAGS-tst-wchar-h.c = -D_FORTIFY_SOURCE=2 CFLAGS-isoc99_wscanf.c += $(exceptions) CFLAGS-isoc99_fwscanf.c += $(exceptions) diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha index 3366261d1..48f3b9705 100644 --- a/ports/ChangeLog.alpha +++ b/ports/ChangeLog.alpha @@ -1,5 +1,11 @@ 2012-05-30 Richard Henderson <rth@twiddle.net> + * sysdeps/alpha/Makefile (CFLAGS-s_fma.c): Set -mieee-with-inexact. + (CFLAGS-s_fmaf.c): Likewise. + * sysdeps/alpha/fpu/libm-test-ulps: Regenerate. + + * sysdeps/unix/sysv/linux/alpha/brk.S: Fix error path for PIC. + * sysdeps/alpha/fpu/libm-test-ulps: Regenerate. * sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove diff --git a/ports/ChangeLog.linux-generic b/ports/ChangeLog.linux-generic index 821270f0f..79d46129b 100644 --- a/ports/ChangeLog.linux-generic +++ b/ports/ChangeLog.linux-generic @@ -1,3 +1,8 @@ +2012-05-30 Chris Metcalf <cmetcalf@tilera.com> + + * sysdeps/unix/sysv/linux/generic/syscalls.list: Remove + __connect_internal alias. + 2012-05-18 Chris Metcalf <cmetcalf@tilera.com> * sysdeps/unix/sysv/linux/generic/bits/typesizes.h diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips index 54e1f268d..f72dc4e41 100644 --- a/ports/ChangeLog.mips +++ b/ports/ChangeLog.mips @@ -1,5 +1,7 @@ 2012-05-31 Joseph Myers <joseph@codesourcery.com> + * sysdeps/mips/mips64/libm-test-ulps: Remove sqrt ulps. + * sysdeps/mips/mips32/libm-test-ulps: Regenerate. * sysdeps/mips/mips64/libm-test-ulps: Likewise. diff --git a/ports/ChangeLog.powerpc b/ports/ChangeLog.powerpc index 1f7ac977a..ee958ebc9 100644 --- a/ports/ChangeLog.powerpc +++ b/ports/ChangeLog.powerpc @@ -1,3 +1,7 @@ +2012-05-31 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/powerpc/nofpu/libm-test-ulps: Regenerated. + 2012-05-30 Joseph Myers <joseph@codesourcery.com> * sysdeps/powerpc/soft-fp/sfp-machine.h (FP_EX_DENORM): Remove. diff --git a/ports/ChangeLog.tile b/ports/ChangeLog.tile index ff914495a..ce8c3e07c 100644 --- a/ports/ChangeLog.tile +++ b/ports/ChangeLog.tile @@ -1,8 +1,5 @@ 2012-05-30 Chris Metcalf <cmetcalf@tilera.com> - * sysdeps/unix/sysv/linux/generic/syscalls.list: Remove - __connect_internal alias. - * sysdeps/unix/sysv/linux/tile/tilegx/Makefile: Remove test that $(subdir) is "misc" when setting abi- variables. diff --git a/ports/sysdeps/alpha/Makefile b/ports/sysdeps/alpha/Makefile index b08f69d99..17fd3b84d 100644 --- a/ports/sysdeps/alpha/Makefile +++ b/ports/sysdeps/alpha/Makefile @@ -37,6 +37,12 @@ ifeq ($(subdir),elf) CFLAGS-rtld.c = -mbuild-constants endif +ifeq ($(subdir),math) +# The fma routines rely on inexact being raised for correct results. +CFLAGS-s_fma.c = -mieee-with-inexact +CFLAGS-s_fmaf.c = -mieee-with-inexact +endif + # Build everything with full IEEE math support, and with dynamic rounding; # there are a number of math routines that are defined to work with the # "current" rounding mode, and it's easiest to set this with all of them. diff --git a/ports/sysdeps/alpha/fpu/libm-test-ulps b/ports/sysdeps/alpha/fpu/libm-test-ulps index 39884260a..908154c4e 100644 --- a/ports/sysdeps/alpha/fpu/libm-test-ulps +++ b/ports/sysdeps/alpha/fpu/libm-test-ulps @@ -1615,20 +1615,6 @@ Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217": double: 1 idouble: 1 -# fma -Test "fma (-0x1.19cab66d73e17p-959, 0x1.c7108a8c5ff51p-107, -0x0.80b0ad65d9b64p-1022) == -0x0.80b0ad65d9d59p-1022": -double: 1 -idouble: 1 -Test "fma (0x1.0000002p+0, 0x1.ffffffcp-1, -0x1p-300) == 0x1.fffffffffffffp-1": -double: 1 -idouble: 1 -Test "fma (0x1.153d650bb9f06p-907, 0x1.2d01230d48407p-125, -0x0.b278d5acfc3cp-1022) == -0x0.b22757123bbe9p-1022": -double: 1 -idouble: 1 -Test "fma (0x1.4000004p-967, 0x1p-106, 0x0.000001p-1022) == 0x0.0000010000003p-1022": -double: 1 -idouble: 1 - # gamma Test "gamma (-0.5) == log(2*sqrt(pi))": ildouble: 1 diff --git a/ports/sysdeps/mips/mips64/libm-test-ulps b/ports/sysdeps/mips/mips64/libm-test-ulps index c21b07758..bc9464eb7 100644 --- a/ports/sysdeps/mips/mips64/libm-test-ulps +++ b/ports/sysdeps/mips/mips64/libm-test-ulps @@ -1932,11 +1932,6 @@ Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168": float: 1 ifloat: 1 -# sqrt -Test "sqrt (2) == M_SQRT2l": -ildouble: 1 -ldouble: 1 - # tan_downward Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": float: 1 @@ -2680,10 +2675,6 @@ Function: "sinh_towardzero": float: 1 ifloat: 1 -Function: "sqrt": -ildouble: 1 -ldouble: 1 - Function: "tan": double: 1 idouble: 1 diff --git a/ports/sysdeps/powerpc/nofpu/libm-test-ulps b/ports/sysdeps/powerpc/nofpu/libm-test-ulps index 49e484df4..651692a42 100644 --- a/ports/sysdeps/powerpc/nofpu/libm-test-ulps +++ b/ports/sysdeps/powerpc/nofpu/libm-test-ulps @@ -1,25 +1,144 @@ # Begin of automatic generation # acos +Test "acos (-0x0.ffffffff8p0) == 3.1415773948007305904329067627145550395696": +ildouble: 1 +ldouble: 1 +Test "acos (-0x0.ffffffp0) == 3.1412473866050770348750401337968641476999": +ildouble: 1 +ldouble: 1 Test "acos (2e-17) == 1.57079632679489659923132169163975144": ildouble: 1 ldouble: 1 +# acos_downward +Test "acos_downward (-0) == pi/2": +float: 1 +ifloat: 1 +Test "acos_downward (-0.5) == M_PI_6l*4.0": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "acos_downward (-1) == pi": +float: 1 +ifloat: 1 +Test "acos_downward (0) == pi/2": +float: 1 +ifloat: 1 +Test "acos_downward (0.5) == M_PI_6l*2.0": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +# acos_towardzero +Test "acos_towardzero (-0) == pi/2": +float: 1 +ifloat: 1 +Test "acos_towardzero (-0.5) == M_PI_6l*4.0": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "acos_towardzero (-1) == pi": +float: 1 +ifloat: 1 +Test "acos_towardzero (0) == pi/2": +float: 1 +ifloat: 1 +Test "acos_towardzero (0.5) == M_PI_6l*2.0": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +# acos_upward +Test "acos_upward (-0) == pi/2": +ildouble: 2 +ldouble: 2 +Test "acos_upward (-1) == pi": +ildouble: 2 +ldouble: 2 +Test "acos_upward (0) == pi/2": +ildouble: 2 +ldouble: 2 + # asin +Test "asin (-0x0.ffffffff8p0) == -1.5707810680058339712015850710748035974710": +ildouble: 1 +ldouble: 1 +Test "asin (-0x0.ffffffp0) == -1.5704510598101804156437184421571127056013": +ildouble: 1 +ldouble: 1 Test "asin (0.75) == 0.848062078981481008052944338998418080": ildouble: 2 ldouble: 2 +Test "asin (0x0.ffffffff8p0) == 1.5707810680058339712015850710748035974710": +ildouble: 1 +ldouble: 1 +Test "asin (0x0.ffffffp0) == 1.5704510598101804156437184421571127056013": +ildouble: 1 +ldouble: 1 + +# asin_downward +Test "asin_downward (-0.5) == -pi/6": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_downward (-1.0) == -pi/2": +ildouble: 1 +ldouble: 1 +Test "asin_downward (0.5) == pi/6": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_downward (1.0) == pi/2": +float: 1 +ifloat: 1 + +# asin_towardzero +Test "asin_towardzero (-0.5) == -pi/6": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-1.0) == -pi/2": +float: 1 +ifloat: 1 +Test "asin_towardzero (0.5) == pi/6": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (1.0) == pi/2": +float: 1 +ifloat: 1 + +# asin_upward +Test "asin_upward (-1.0) == -pi/2": +float: 1 +ifloat: 1 +Test "asin_upward (1.0) == pi/2": +ildouble: 1 +ldouble: 1 # atan2 Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112": ildouble: 1 ldouble: 1 Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025": -float: 3 -ifloat: 3 +float: 1 +ifloat: 1 Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025": -float: 3 -ifloat: 3 +float: 1 +ifloat: 1 Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772": float: 1 ifloat: 1 @@ -36,31 +155,296 @@ Test "cabs (0.75 + 1.25 i) == 1.45773797371132511771853821938639577": ildouble: 1 ldouble: 1 +# cacos +Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: cacos (+0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i": +float: 1 +ifloat: 1 +Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i": +double: 1 +idouble: 1 +Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: cacos (-0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i": +float: 1 +ifloat: 1 +Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i": +double: 1 +idouble: 1 +Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + # cacosh -Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i": +float: 1 +ifloat: 1 +Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i": double: 1 float: 1 idouble: 1 ifloat: 1 -Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i": +double: 1 +idouble: 1 +Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i": +float: 1 +ifloat: 1 +Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i": +double: 1 +idouble: 1 +Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i": +float: 1 +ifloat: 1 +Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i": +double: 1 +idouble: 1 +Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i": +float: 1 +ifloat: 1 +Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i": double: 1 float: 1 idouble: 1 ifloat: 1 +Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i": +double: 1 +idouble: 1 +Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i": +double: 1 +idouble: 1 +Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i": +double: 1 +idouble: 1 +Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i": +float: 1 +ifloat: 1 +Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i": +float: 1 +ifloat: 1 +Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +float: 1 +ifloat: 1 +Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i": +float: 1 +ifloat: 1 +Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i": +float: 1 +ifloat: 1 # casin -Test "Real part of: casin (-2 - 3 i) == -0.57065278432109940071028387968566963 - 1.9833870299165354323470769028940395 i": +Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: casin (+0 + 1.0 i) == +0 + 0.8813735870195430252326093249797923090282 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 ildouble: 1 ldouble: 1 -Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i": +Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i": +float: 1 +ifloat: 1 +Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i": double: 1 float: 1 idouble: 1 ifloat: 1 +Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i": +double: 1 +idouble: 1 +Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: casin (-0 + 1.0 i) == -0 + 0.8813735870195430252326093249797923090282 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 ildouble: 1 ldouble: 1 +Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i": +float: 1 +ifloat: 1 +Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i": +double: 1 +idouble: 1 +Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: casin (-2 - 3 i) == -0.57065278432109940071028387968566963 - 1.9833870299165354323470769028940395 i": +ildouble: 1 +ldouble: 1 +Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 # casinh +Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i": double: 5 float: 1 @@ -75,6 +459,12 @@ idouble: 3 ifloat: 6 ildouble: 1 ldouble: 1 +Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i": +float: 1 +ifloat: 1 +Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i": +float: 1 +ifloat: 1 Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i": float: 1 ifloat: 1 @@ -83,11 +473,25 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i": +double: 1 +idouble: 1 +Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i": +double: 1 +idouble: 1 # catan Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": -float: 3 -ifloat: 3 ildouble: 1 ldouble: 1 Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": @@ -95,25 +499,14 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 -Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i": -float: 4 -ifloat: 4 # catanh Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": double: 4 idouble: 4 -Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": -float: 4 -ifloat: 4 Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": double: 1 idouble: 1 -Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": -float: 6 -ifloat: 6 # cbrt Test "cbrt (-27.0) == -3.0": @@ -127,6 +520,22 @@ double: 1 idouble: 1 # ccos +Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": float: 1 ifloat: 1 @@ -138,6 +547,25 @@ ifloat: 1 Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i": float: 1 ifloat: 1 +Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i": +double: 1 +idouble: 1 # ccosh Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": @@ -146,6 +574,22 @@ ifloat: 1 Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": float: 1 ifloat: 1 +Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i": double: 1 float: 1 @@ -158,11 +602,35 @@ float: 1 ifloat: 1 ildouble: 2 ldouble: 2 +Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 # cexp Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i": float: 1 ifloat: 1 +Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i": float: 1 ifloat: 1 @@ -171,11 +639,44 @@ ldouble: 2 Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i": ildouble: 1 ldouble: 1 +Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i": +double: 1 +idouble: 1 +Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i": +double: 1 +idouble: 1 +Test "Imaginary part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i": +ildouble: 1 +ldouble: 1 +Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i": +double: 1 +idouble: 1 +Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i": +float: 1 +ifloat: 1 +Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i": +float: 2 +ifloat: 2 # clog Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i": -float: 3 -ifloat: 3 ildouble: 1 ldouble: 1 Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i": @@ -186,6 +687,12 @@ ldouble: 2 Test "Imaginary part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i": ildouble: 1 ldouble: 1 +Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i": +double: 1 +idouble: 1 +Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i": +float: 1 +ifloat: 1 # clog10 Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i": @@ -200,9 +707,7 @@ idouble: 1 ifloat: 1 Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": double: 1 -float: 5 idouble: 1 -ifloat: 5 ildouble: 1 ldouble: 1 Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": @@ -210,8 +715,6 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i": double: 1 float: 1 @@ -255,6 +758,36 @@ float: 1 ifloat: 1 ildouble: 3 ldouble: 3 +Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i": +float: 1 +ifloat: 1 +Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 308.4052305577487344482591243175787477115 + pi/4*log10(e) i": +double: 1 +idouble: 1 +Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i) == -322.8546703496198318667349645920187712089 + pi/4*log10(e) i": +double: 1 +idouble: 1 +Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i": +double: 1 +idouble: 1 +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i": +double: 1 +idouble: 1 +Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i": double: 1 float: 1 @@ -279,19 +812,152 @@ ifloat: 1 # cos Test "cos (M_PI_6l * 2.0) == 0.5": double: 1 -float: 1 idouble: 1 -ifloat: 1 Test "cos (M_PI_6l * 4.0) == -0.5": double: 2 float: 1 idouble: 2 ifloat: 1 -Test "cos (pi/2) == 0": -double: 1 + +# cos_downward +Test "cos_downward (1) == 0.5403023058681397174009366074429766037323": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (10) == -0.8390715290764524522588639478240648345199": +ildouble: 1 +ldouble: 1 +Test "cos_downward (2) == -0.4161468365471423869975682295007621897660": +float: 1 +ifloat: 1 +Test "cos_downward (3) == -0.9899924966004454572715727947312613023937": +float: 1 +ifloat: 1 +Test "cos_downward (4) == -0.6536436208636119146391681830977503814241": +float: 1 +ifloat: 1 +Test "cos_downward (5) == 0.2836621854632262644666391715135573083344": +float: 1 +ifloat: 1 +Test "cos_downward (6) == 0.9601702866503660205456522979229244054519": +ildouble: 1 +ldouble: 1 +Test "cos_downward (7) == 0.7539022543433046381411975217191820122183": +float: 1 +ifloat: 1 +Test "cos_downward (8) == -0.1455000338086135258688413818311946826093": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "cos_downward (9) == -0.9111302618846769883682947111811653112463": +ildouble: 1 +ldouble: 1 + +# cos_tonearest +Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183": +float: 1 +ifloat: 1 + +# cos_towardzero +Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660": +float: 1 +ifloat: 1 +Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937": +float: 1 +ifloat: 1 +Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344": +float: 1 +ifloat: 1 +Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183": +float: 1 +ifloat: 1 +Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +# cos_upward +Test "cos_upward (10) == -0.8390715290764524522588639478240648345199": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (4) == -0.6536436208636119146391681830977503814241": +ildouble: 1 +ldouble: 1 +Test "cos_upward (5) == 0.2836621854632262644666391715135573083344": +ildouble: 1 +ldouble: 1 +Test "cos_upward (6) == 0.9601702866503660205456522979229244054519": +float: 1 +ifloat: 1 +Test "cos_upward (7) == 0.7539022543433046381411975217191820122183": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (9) == -0.9111302618846769883682947111811653112463": +float: 2 +ifloat: 2 + +# cosh_downward +Test "cosh_downward (22) == 1792456423.065795780980053377632656584997": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cosh_downward (23) == 4872401723.124451300068625740569997090344": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cosh_downward (24) == 13244561064.92173614708845674912733665919": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +# cosh_tonearest +Test "cosh_tonearest (24) == 13244561064.92173614708845674912733665919": +ildouble: 1 +ldouble: 1 + +# cosh_towardzero +Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997": float: 1 -idouble: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +# cosh_upward +Test "cosh_upward (22) == 1792456423.065795780980053377632656584997": +ildouble: 2 +ldouble: 2 +Test "cosh_upward (23) == 4872401723.124451300068625740569997090344": +ildouble: 2 +ldouble: 2 +Test "cosh_upward (24) == 13244561064.92173614708845674912733665919": +ildouble: 2 +ldouble: 2 # cpow Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": @@ -333,8 +999,8 @@ ifloat: 4 Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": float: 2 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 1 +ldouble: 1 Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i": double: 2 float: 2 @@ -343,12 +1009,65 @@ ifloat: 2 ildouble: 2 ldouble: 2 +# csin +Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i": +double: 1 +idouble: 1 +Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i": +double: 1 +idouble: 1 +Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i": +double: 1 +idouble: 1 +Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i": +double: 1 +idouble: 1 +Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i": +double: 1 +idouble: 1 + # csinh Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i": float: 1 ifloat: 1 @@ -359,6 +1078,25 @@ float: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i": +double: 1 +idouble: 1 +Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i": +double: 1 +idouble: 1 +Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 # csqrt Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i": @@ -367,32 +1105,90 @@ ifloat: 1 Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i": float: 1 ifloat: 1 +Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i": +float: 1 +ifloat: 1 +Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i": +double: 1 +idouble: 1 +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i": +double: 1 +idouble: 1 +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 # ctan Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": double: 1 idouble: 1 -Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": ildouble: 1 ldouble: 1 Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": double: 1 idouble: 1 +ildouble: 1 +ldouble: 1 +Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i": +double: 1 +idouble: 1 +Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i": +float: 1 +ifloat: 1 +Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i": +ildouble: 2 +ldouble: 2 # ctanh Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": double: 1 -float: 2 +float: 1 idouble: 1 -ifloat: 2 +ifloat: 1 +Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i": +float: 1 +ifloat: 1 Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": +double: 1 float: 1 +idouble: 1 ifloat: 1 Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 1 ldouble: 1 +Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": +float: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i": +double: 1 +idouble: 1 +Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i": +double: 1 +idouble: 1 +Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i": +ildouble: 2 +ldouble: 2 # erf Test "erf (1.25) == 0.922900128256458230136523481197281140": @@ -400,6 +1196,15 @@ double: 1 idouble: 1 # erfc +Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8": +double: 1 +idouble: 1 +Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29": +float: 1 +ifloat: 1 +Test "erfc (0x1.ffff56789abcdef0123456789a8p+2) == 1.123161416304655390092138725253789378459e-29": +ildouble: 1 +ldouble: 1 Test "erfc (2.0) == 0.00467773498104726583793074363274707139": double: 1 idouble: 1 @@ -417,31 +1222,49 @@ ldouble: 1 # exp10 Test "exp10 (-1) == 0.1": -double: 2 +double: 1 +idouble: 1 +Test "exp10 (-305) == 1.0e-305": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "exp10 (-36) == 1.0e-36": +double: 1 +idouble: 1 +Test "exp10 (3) == 1000": +double: 1 +idouble: 1 +Test "exp10 (36) == 1.0e36": +double: 1 +idouble: 1 + +# exp_downward +Test "exp_downward (2) == e^2": +float: 1 +ifloat: 1 +Test "exp_downward (3) == e^3": float: 1 -idouble: 2 ifloat: 1 ildouble: 1 ldouble: 1 -Test "exp10 (0.75) == 5.62341325190349080394951039776481231": -double: 1 + +# exp_towardzero +Test "exp_towardzero (2) == e^2": +float: 1 +ifloat: 1 +Test "exp_towardzero (3) == e^3": float: 1 -idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 -Test "exp10 (3) == 1000": -double: 6 -float: 2 -idouble: 6 -ifloat: 2 -ildouble: 8 -ldouble: 8 -# exp2 -Test "exp2 (10) == 1024": -ildouble: 2 -ldouble: 2 +# exp_upward +Test "exp_upward (1) == e": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 # expm1 Test "expm1 (0.75) == 1.11700001661267466854536981983709561": @@ -452,6 +1275,9 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217": +double: 1 +idouble: 1 # hypot Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271": @@ -483,16 +1309,22 @@ float: 1 ifloat: 1 # j0 +Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90": +ildouble: 2 +ldouble: 2 Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1": double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 Test "j0 (0.75) == 0.864242275166648623555731103820923211": float: 1 ifloat: 1 +Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17": +float: 2 +ifloat: 2 +ildouble: 1 +ldouble: 1 Test "j0 (10.0) == -0.245935764451348335197760862485328754": double: 2 float: 1 @@ -506,13 +1338,21 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 Test "j0 (8.0) == 0.171650807137553906090869407851972001": float: 1 ifloat: 1 # j1 +Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "j1 (10.0) == 0.0434727461688614366697487680258592883": float: 2 ifloat: 2 @@ -533,8 +1373,6 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 Test "jn (0, 0.75) == 0.864242275166648623555731103820923211": float: 1 ifloat: 1 @@ -543,8 +1381,6 @@ double: 2 float: 1 idouble: 2 ifloat: 1 -ildouble: 1 -ldouble: 1 Test "jn (0, 2.0) == 0.223890779141235668051827454649948626": float: 2 ifloat: 2 @@ -553,13 +1389,9 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": float: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883": float: 2 ifloat: 2 @@ -599,11 +1431,20 @@ ifloat: 3 ildouble: 4 ldouble: 4 Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6": -float: 4 -ifloat: 4 -Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083": -ildouble: 1 -ldouble: 1 +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4": double: 1 float: 1 @@ -614,9 +1455,6 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083": -ildouble: 1 -ldouble: 1 Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563": double: 3 float: 1 @@ -625,12 +1463,53 @@ ifloat: 1 ildouble: 2 ldouble: 2 Test "jn (3, 2.0) == 0.128943249474402051098793332969239835": +float: 1 +ifloat: 1 +Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813": +double: 3 +idouble: 3 +ildouble: 1 +ldouble: 1 +Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1": double: 1 -float: 2 idouble: 1 -ifloat: 2 ildouble: 2 ldouble: 2 +Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +ildouble: 4 +ldouble: 4 +Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3": +double: 3 +float: 5 +idouble: 3 +ifloat: 5 +ildouble: 2 +ldouble: 2 +Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 4 +ldouble: 4 +Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 7 +ldouble: 7 # lgamma Test "lgamma (0.7) == 0.260867246531666514385732417016759578": @@ -666,22 +1545,135 @@ Test "log2 (e) == M_LOG2El": ildouble: 1 ldouble: 1 +# pow +Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416": +float: 1 +ifloat: 1 +Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744": +float: 1 +ifloat: 1 +Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141": +float: 1 +ifloat: 1 + +# pow_downward +Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": +ildouble: 1 +ldouble: 1 +Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": +float: 1 +ifloat: 1 + +# pow_towardzero +Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674": +ildouble: 1 +ldouble: 1 +Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948": +float: 1 +ifloat: 1 + +# pow_upward +Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": +float: 1 +ifloat: 1 +Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": +ildouble: 1 +ldouble: 1 + +# sin_downward +Test "sin_downward (1) == 0.8414709848078965066525023216302989996226": +ildouble: 4 +ldouble: 4 +Test "sin_downward (10) == -0.5440211108893698134047476618513772816836": +float: 1 +ifloat: 1 +Test "sin_downward (2) == 0.9092974268256816953960198659117448427023": +ildouble: 1 +ldouble: 1 +Test "sin_downward (3) == 0.1411200080598672221007448028081102798469": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "sin_downward (4) == -0.7568024953079282513726390945118290941359": +ildouble: 1 +ldouble: 1 +Test "sin_downward (5) == -0.9589242746631384688931544061559939733525": +float: 1 +ifloat: 1 +Test "sin_downward (6) == -0.2794154981989258728115554466118947596280": +float: 1 +ifloat: 1 +Test "sin_downward (8) == 0.9893582466233817778081235982452886721164": +ildouble: 1 +ldouble: 1 + +# sin_tonearest +Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226": +float: 1 +ifloat: 1 + +# sin_towardzero +Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836": +float: 1 +ifloat: 1 +Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359": +float: 1 +ifloat: 1 +Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525": +float: 1 +ifloat: 1 +Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439": +float: 1 +ifloat: 1 + +# sin_upward +Test "sin_upward (1) == 0.8414709848078965066525023216302989996226": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "sin_upward (2) == 0.9092974268256816953960198659117448427023": +float: 2 +ifloat: 2 +Test "sin_upward (3) == 0.1411200080598672221007448028081102798469": +ildouble: 1 +ldouble: 1 +Test "sin_upward (4) == -0.7568024953079282513726390945118290941359": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (6) == -0.2794154981989258728115554466118947596280": +ildouble: 1 +ldouble: 1 +Test "sin_upward (9) == 0.4121184852417565697562725663524351793439": +float: 1 +ifloat: 1 + # sincos Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": double: 1 -float: 1 idouble: 1 -ifloat: 1 Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": double: 1 float: 1 idouble: 1 ifloat: 1 -Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": float: 1 ifloat: 1 @@ -691,10 +1683,147 @@ Test "sinh (0.75) == 0.822316731935829980703661634446913849": ildouble: 1 ldouble: 1 +# sinh_downward +Test "sinh_downward (22) == 1792456423.065795780701106568345764104225": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "sinh_downward (23) == 4872401723.124451299966006944252978187305": +float: 1 +ifloat: 1 +Test "sinh_downward (24) == 13244561064.92173614705070540368454568168": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +# sinh_towardzero +Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305": +float: 1 +ifloat: 1 +Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +# sinh_upward +Test "sinh_upward (23) == 4872401723.124451299966006944252978187305": +ildouble: 1 +ldouble: 1 +Test "sinh_upward (24) == 13244561064.92173614705070540368454568168": +ildouble: 1 +ldouble: 1 + # tan Test "tan (pi/4) == 1": -double: 1 -idouble: 1 +ildouble: 1 +ldouble: 1 + +# tan_downward +Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_downward (10) == 0.6483608274590866712591249330098086768169": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_downward (2) == -2.1850398632615189916433061023136825434320": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tan_downward (6) == -0.2910061913847491570536995888681755428312": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tan_downward (8) == -6.7997114552203786999252627596086333648814": +float: 1 +ifloat: 1 +Test "tan_downward (9) == -0.4523156594418098405903708757987855343087": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +# tan_tonearest +Test "tan_tonearest (10) == 0.6483608274590866712591249330098086768169": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (4) == 1.1578212823495775831373424182673239231198": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (7) == 0.8714479827243187364564508896003135663222": +ildouble: 1 +ldouble: 1 + +# tan_towardzero +Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261": +float: 1 +ifloat: 1 +ildouble: 3 +ldouble: 3 +Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096": +float: 1 +ifloat: 1 +Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +# tan_upward +Test "tan_upward (1) == 1.5574077246549022305069748074583601730873": +float: 1 +ifloat: 1 +Test "tan_upward (10) == 0.6483608274590866712591249330098086768169": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (3) == -0.1425465430742778052956354105339134932261": +float: 1 +ifloat: 1 +ildouble: 3 +ldouble: 3 +Test "tan_upward (5) == -3.3805150062465856369827058794473439087096": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (6) == -0.2910061913847491570536995888681755428312": +ildouble: 1 +ldouble: 1 +Test "tan_upward (7) == 0.8714479827243187364564508896003135663222": +ildouble: 1 +ldouble: 1 +Test "tan_upward (9) == -0.4523156594418098405903708757987855343087": ildouble: 1 ldouble: 1 @@ -725,7 +1854,12 @@ ifloat: 1 Test "y0 (0.125) == -1.38968062514384052915582277745018693": ildouble: 1 ldouble: 1 -Test "y0 (0.75) == -0.137172769385772397522814379396581855": +Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12": +double: 1 +idouble: 1 +Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127": +double: 1 +idouble: 1 ildouble: 1 ldouble: 1 Test "y0 (1.0) == 0.0882569642156769579829267660235151628": @@ -745,9 +1879,6 @@ float: 1 ifloat: 1 ildouble: 1 ldouble: 1 -Test "y0 (2.0) == 0.510375672649745119596606592727157873": -double: 1 -idouble: 1 Test "y0 (8.0) == 0.223521489387566220527323400498620359": double: 1 float: 1 @@ -760,6 +1891,14 @@ ldouble: 1 Test "y1 (0.125) == -5.19993611253477499595928744876579921": double: 1 idouble: 1 +Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90": +ildouble: 2 +ldouble: 2 +Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "y1 (1.5) == -0.412308626973911295952829820633445323": float: 1 ifloat: 1 @@ -782,23 +1921,18 @@ double: 1 float: 2 idouble: 1 ifloat: 2 -ildouble: 2 -ldouble: 2 # yn Test "yn (0, 0.125) == -1.38968062514384052915582277745018693": ildouble: 1 ldouble: 1 -Test "yn (0, 0.75) == -0.137172769385772397522814379396581855": -ildouble: 1 -ldouble: 1 Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628": double: 2 float: 1 idouble: 2 ifloat: 1 -ildouble: 2 -ldouble: 2 +ildouble: 1 +ldouble: 1 Test "yn (0, 1.5) == 0.382448923797758843955068554978089862": double: 2 float: 1 @@ -807,15 +1941,15 @@ ifloat: 1 Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481": float: 1 ifloat: 1 -ildouble: 2 -ldouble: 2 +ildouble: 1 +ldouble: 1 Test "yn (0, 8.0) == 0.223521489387566220527323400498620359": double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 2 -ldouble: 2 +ildouble: 1 +ldouble: 1 Test "yn (1, 0.125) == -5.19993611253477499595928744876579921": double: 1 idouble: 1 @@ -841,8 +1975,6 @@ double: 1 float: 2 idouble: 1 ifloat: 2 -ildouble: 2 -ldouble: 2 Test "yn (10, 0.125) == -127057845771019398.252538486899753195": double: 1 idouble: 1 @@ -859,13 +1991,13 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 2 -ldouble: 2 +ildouble: 1 +ldouble: 1 Test "yn (10, 2.0) == -129184.542208039282635913145923304214": double: 2 idouble: 2 -ildouble: 2 -ldouble: 2 +ildouble: 1 +ldouble: 1 Test "yn (3, 0.125) == -2612.69757350066712600220955744091741": double: 1 idouble: 1 @@ -879,8 +2011,8 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 2 -ldouble: 2 +ildouble: 1 +ldouble: 1 Test "yn (3, 2.0) == -1.12778377684042778608158395773179238": double: 1 idouble: 1 @@ -890,6 +2022,30 @@ Function: "acos": ildouble: 1 ldouble: 1 +Function: "acos_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "acos_tonearest": +ildouble: 1 +ldouble: 1 + +Function: "acos_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "acos_upward": +ildouble: 2 +ldouble: 2 + Function: "acosh": ildouble: 1 ldouble: 1 @@ -898,13 +2054,39 @@ Function: "asin": ildouble: 2 ldouble: 2 +Function: "asin_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "asin_tonearest": +ildouble: 1 +ldouble: 1 + +Function: "asin_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "asin_upward": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + Function: "asinh": ildouble: 1 ldouble: 1 Function: "atan2": -float: 3 -ifloat: 3 +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -917,28 +2099,32 @@ ildouble: 1 ldouble: 1 Function: Real part of "cacos": +double: 1 +idouble: 1 ildouble: 1 ldouble: 1 Function: Imaginary part of "cacos": -ildouble: 1 -ldouble: 1 +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 Function: Real part of "cacosh": double: 1 -float: 7 +float: 1 idouble: 1 -ifloat: 7 +ifloat: 1 ildouble: 1 ldouble: 1 Function: Imaginary part of "cacosh": double: 1 -float: 3 +float: 1 idouble: 1 -ifloat: 3 -ildouble: 1 -ldouble: 1 +ifloat: 1 Function: Real part of "casin": double: 1 @@ -949,8 +2135,12 @@ ildouble: 1 ldouble: 1 Function: Imaginary part of "casin": -ildouble: 1 -ldouble: 1 +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 Function: Real part of "casinh": double: 5 @@ -969,8 +2159,6 @@ ildouble: 1 ldouble: 1 Function: Real part of "catan": -float: 4 -ifloat: 4 ildouble: 1 ldouble: 1 @@ -986,10 +2174,6 @@ Function: Real part of "catanh": double: 4 idouble: 4 -Function: Imaginary part of "catanh": -float: 6 -ifloat: 6 - Function: "cbrt": double: 1 idouble: 1 @@ -1005,10 +2189,12 @@ ildouble: 1 ldouble: 1 Function: Imaginary part of "ccos": +double: 1 float: 1 +idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: Real part of "ccosh": double: 1 @@ -1019,46 +2205,54 @@ ildouble: 1 ldouble: 1 Function: Imaginary part of "ccosh": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 2 ldouble: 2 Function: Real part of "cexp": +double: 2 float: 1 +idouble: 2 ifloat: 1 ildouble: 2 ldouble: 2 Function: Imaginary part of "cexp": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 Function: Real part of "clog": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 2 ldouble: 2 Function: Imaginary part of "clog": -float: 3 -ifloat: 3 ildouble: 1 ldouble: 1 Function: Real part of "clog10": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 3 ldouble: 3 Function: Imaginary part of "clog10": double: 1 -float: 5 +float: 1 idouble: 1 -ifloat: 5 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -1070,10 +2264,54 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "cos_downward": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "cos_tonearest": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "cos_towardzero": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "cos_upward": +float: 2 +ifloat: 2 +ildouble: 1 +ldouble: 1 + Function: "cosh": ildouble: 1 ldouble: 1 +Function: "cosh_downward": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "cosh_tonearest": +ildouble: 1 +ldouble: 1 + +Function: "cosh_towardzero": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "cosh_upward": +ildouble: 2 +ldouble: 2 + Function: Real part of "cpow": double: 2 float: 4 @@ -1090,11 +2328,15 @@ ifloat: 2 ildouble: 2 ldouble: 2 -Function: Imaginary part of "cproj": -ildouble: 1 -ldouble: 1 - Function: Real part of "csin": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "csin": ildouble: 1 ldouble: 1 @@ -1109,24 +2351,32 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: Real part of "csqrt": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 Function: Imaginary part of "csqrt": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Function: Real part of "ctan": double: 1 +float: 1 idouble: 1 -ildouble: 1 -ldouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 Function: Imaginary part of "ctan": double: 1 @@ -1136,17 +2386,19 @@ ldouble: 1 Function: Real part of "ctanh": double: 1 -float: 2 +float: 1 idouble: 1 -ifloat: 2 +ifloat: 1 ildouble: 1 ldouble: 1 Function: Imaginary part of "ctanh": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 Function: "erf": double: 1 @@ -1156,7 +2408,9 @@ ldouble: 1 Function: "erfc": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -1165,22 +2419,40 @@ ildouble: 1 ldouble: 1 Function: "exp10": -double: 6 -float: 2 -idouble: 6 -ifloat: 2 -ildouble: 8 -ldouble: 8 +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 -Function: "exp2": -ildouble: 2 -ldouble: 2 +Function: "exp_downward": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "exp_tonearest": +ildouble: 1 +ldouble: 1 + +Function: "exp_towardzero": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "exp_upward": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Function: "expm1": double: 1 float: 1 idouble: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Function: "gamma": ildouble: 1 @@ -1197,8 +2469,8 @@ double: 2 float: 2 idouble: 2 ifloat: 2 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "j1": double: 1 @@ -1210,11 +2482,11 @@ ldouble: 1 Function: "jn": double: 4 -float: 4 +float: 5 idouble: 4 -ifloat: 4 -ildouble: 4 -ldouble: 4 +ifloat: 5 +ildouble: 7 +ldouble: 7 Function: "lgamma": double: 1 @@ -1239,14 +2511,32 @@ ldouble: 1 Function: "log1p": float: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 Function: "log2": ildouble: 1 ldouble: 1 Function: "pow": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "pow_downward": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "pow_towardzero": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "pow_upward": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -1254,6 +2544,30 @@ Function: "sin": ildouble: 1 ldouble: 1 +Function: "sin_downward": +float: 1 +ifloat: 1 +ildouble: 4 +ldouble: 4 + +Function: "sin_tonearest": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "sin_towardzero": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "sin_upward": +float: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + Function: "sincos": double: 1 float: 1 @@ -1266,12 +2580,54 @@ Function: "sinh": ildouble: 1 ldouble: 1 +Function: "sinh_downward": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "sinh_tonearest": +ildouble: 1 +ldouble: 1 + +Function: "sinh_towardzero": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "sinh_upward": +ildouble: 1 +ldouble: 1 + Function: "tan": double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Function: "tan_downward": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "tan_tonearest": +ildouble: 1 +ldouble: 1 + +Function: "tan_towardzero": +float: 1 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +Function: "tan_upward": +float: 1 +ifloat: 1 +ildouble: 3 +ldouble: 3 + Function: "tanh": ildouble: 1 ldouble: 1 @@ -1289,8 +2645,8 @@ double: 2 float: 1 idouble: 2 ifloat: 1 -ildouble: 2 -ldouble: 2 +ildouble: 1 +ldouble: 1 Function: "y1": double: 3 diff --git a/ports/sysdeps/unix/sysv/linux/alpha/brk.S b/ports/sysdeps/unix/sysv/linux/alpha/brk.S index 826d7374f..cb759dbe9 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/brk.S +++ b/ports/sysdeps/unix/sysv/linux/alpha/brk.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Brendan Kehoe <brendan@zen.org>, 1993. @@ -36,16 +36,22 @@ __curbrk: .skip 8 #endif .text -LEAF(__brk, 8) + .align 4 + .globl __brk + .ent __brk + .usepv __brk, std + + cfi_startproc +__brk: ldgp gp, 0(t12) - subq sp, 8, sp + subq sp, 16, sp + cfi_adjust_cfa_offset (16) #ifdef PROF .set noat lda AT, _mcount jsr AT, (AT), _mcount .set at #endif - .prologue 1 /* Save the requested brk across the system call. */ stq a0, 0(sp) @@ -54,27 +60,25 @@ LEAF(__brk, 8) call_pal PAL_callsys ldq a0, 0(sp) + addq sp, 16, sp + cfi_adjust_cfa_offset (-16) /* Be prepared for an OSF-style brk. */ - bne a3, $err1 + bne a3, SYSCALL_ERROR_LABEL beq v0, $ok /* Correctly handle the brk(0) query case. */ cmoveq a0, v0, a0 xor a0, v0, t0 - bne t0, $err0 + lda v0, ENOMEM + bne t0, SYSCALL_ERROR_LABEL /* Update __curbrk and return cleanly. */ - mov zero, v0 + lda v0, 0 $ok: stq a0, __curbrk - addq sp, 8, sp ret - /* What a horrible way to die. */ -$err0: ldi v0, ENOMEM -$err1: addq sp, 8, sp - SYSCALL_ERROR_HANDLER - - END(__brk) +PSEUDO_END(__brk) + cfi_endproc weak_alias (__brk, brk) |