[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commits] r22434 - in /fsf/trunk/libc: ./ csu/ elf/ math/ nptl/sysdeps/pthread/bits/ ports/ ports/sysdeps/aarch64/ ports/sysdeps/alpha...



Author: eglibc
Date: Fri Feb 15 00:02:01 2013
New Revision: 22434

Log:
Import glibc-mainline for 2013-02-15

Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/csu/libc-start.c
    fsf/trunk/libc/elf/dl-open.c
    fsf/trunk/libc/math/fegetenv.c
    fsf/trunk/libc/nptl/sysdeps/pthread/bits/libc-lockP.h
    fsf/trunk/libc/ports/ChangeLog.aarch64
    fsf/trunk/libc/ports/ChangeLog.alpha
    fsf/trunk/libc/ports/ChangeLog.hppa
    fsf/trunk/libc/ports/ChangeLog.powerpc
    fsf/trunk/libc/ports/sysdeps/aarch64/libm-test-ulps
    fsf/trunk/libc/ports/sysdeps/alpha/memchr.c
    fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fegetenv.c
    fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fesetenv.c
    fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/feupdateenv.c
    fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c
    fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c
    fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h
    fsf/trunk/libc/string/memchr.c
    fsf/trunk/libc/sysdeps/i386/fpu/fegetenv.c
    fsf/trunk/libc/sysdeps/i386/fpu/fesetenv.c
    fsf/trunk/libc/sysdeps/i386/fpu/feupdateenv.c
    fsf/trunk/libc/sysdeps/i386/fpu/fsetexcptflg.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpa.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpa.h
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpatan.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpexp.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpsqrt.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/sincos32.c
    fsf/trunk/libc/sysdeps/posix/open64.c
    fsf/trunk/libc/sysdeps/powerpc/fpu/fegetenv.c
    fsf/trunk/libc/sysdeps/powerpc/fpu/fesetenv.c
    fsf/trunk/libc/sysdeps/powerpc/fpu/feupdateenv.c
    fsf/trunk/libc/sysdeps/powerpc/fpu/fgetexcptflg.c
    fsf/trunk/libc/sysdeps/powerpc/fpu/fraiseexcpt.c
    fsf/trunk/libc/sysdeps/powerpc/fpu/fsetexcptflg.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/mpa-avx.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/mpa-fma4.c

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Fri Feb 15 00:02:01 2013
@@ -1,3 +1,131 @@
+2013-02-14  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #13550]
+	* csu/libc-start.c: Do not include <bp-sym.h>.
+	[!LIBC_START_MAIN] (LIBC_START_MAIN): Do not use BP_SYM.
+	* elf/dl-open.c: Do not include <bp-sym.h>.
+	(_dl_sysdep_start): Do not use BP_SYM in weak_extern.
+	* math/fegetenv.c: Do not include <bp-sym.h>.
+	(fegetenv): Do not use BP_SYM in versioned symbols.
+	* nptl/sysdeps/pthread/bits/libc-lockP.h
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]: Do not include
+	<bp-sym.h>.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_mutex_init): Do not use BP_SYM in weak_extern.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_mutex_destroy): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_mutex_lock): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_mutex_trylock): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_mutex_unlock): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_mutexattr_init): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_mutexattr_destroy): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_mutexattr_settype): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_rwlock_init): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_rwlock_destroy): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_rwlock_rdlock): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_rwlock_tryrdlock): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_rwlock_wrlock): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_rwlock_trywrlock): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_rwlock_unlock): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_key_create): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_setspecific): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(__pthread_getspecific): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern] (__pthread_once):
+	Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(_pthread_cleanup_push_defer): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(_pthread_cleanup_pop_restore): Likewise.
+	[!__NO_WEAK_PTHREAD_ALIASES && weak_extern]
+	(pthread_setcancelstate): Likewise.
+	* string/memchr.c [HAVE_BP_SYM_H || _LIBC]: Do not include
+	<bp-sym.h>.
+	[!(HAVE_BP_SYM_H || _LIBC)] (BP_SYM): Remove macro definition.
+	(memchr): Do not use BP_SYM in weak_alias.
+	* sysdeps/i386/fpu/fegetenv.c: Do not include <bp-sym.h>.
+	(fegetenv): Do not use BP_SYM in versioned symbols.
+	* sysdeps/i386/fpu/fesetenv.c: Do not include <bp-sym.h>.
+	(fesetenv): Do not use BP_SYM in versioned symbols.
+	* sysdeps/i386/fpu/feupdateenv.c: Do not include <bp-sym.h>.
+	(feupdateenv): Do not use BP_SYM in versioned symbols.
+	* sysdeps/i386/fpu/fsetexcptflg.c: Do not include <bp-sym.h>.
+	(fesetexceptflag): Do not use BP_SYM in versioned symbols.
+	* sysdeps/posix/open64.c: Do not include <bp-sym.h>.
+	(__open64): Do not use BP_SYM in weak_alias and libc_hidden_weak.
+	(open64): Do not use BP_SYM in weak_alias.
+	* sysdeps/powerpc/fpu/fegetenv.c: Do not include <bp-sym.h>.
+	(fegetenv): Do not use BP_SYM in versioned symbols.
+	* sysdeps/powerpc/fpu/fesetenv.c: Do not include <bp-sym.h>.
+	(fesetenv): Do not use BP_SYM in versioned symbols.
+	* sysdeps/powerpc/fpu/feupdateenv.c: Do not include <bp-sym.h>.
+	(feupdateenv): Do not use BP_SYM in versioned symbols.
+	* sysdeps/powerpc/fpu/fgetexcptflg.c: Do not include <bp-sym.h>.
+	(fegetexceptflag): Do not use BP_SYM in versioned symbols.
+	* sysdeps/powerpc/fpu/fraiseexcpt.c: Do not include <bp-sym.h>.
+	(feraiseexcept): Do not use BP_SYM in versioned symbols.
+	* sysdeps/powerpc/fpu/fsetexcptflg.c: Do not include <bp-sym.h>.
+	(fesetexceptflag): Do not use BP_SYM in versioned symbols.
+	* sysdeps/unix/sysv/linux/powerpc/libc-start.c: Do not include
+	<bp-sym.h>.
+	(__libc_start_main): Do not use BP_SYM.
+
+2013-02-14  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/mpa.c (__cpy): Remove
+	redundant return line.
+	(norm): Likewise.
+	(denorm): Likewise.
+	(dbl_mp): Likewise.
+	(sub_magnitudes): Likewise.
+	(__add): Likewise.
+	(__sub): Likewise.
+	(__mul): Likewise.
+	(__inv): Likewise.
+	(__dvd): Likewise.
+	* sysdeps/powerpc/powerpc64/power4/fpu/mpa.c (__cpy): Likewise.
+	(norm): Likewise.
+	(denorm): Likewise.
+	(dbl_mp): Likewise.
+	(sub_magnitudes): Likewise.
+	(__add): Likewise.
+	(__sub): Likewise.
+	(__mul): Likewise.
+	(__inv): Likewise.
+	(__dvd): Likewise.
+
+	* sysdeps/ieee754/dbl-64/mpatan.c (__mpatan): Use __sqr
+	instead of __mul.
+	* sysdeps/ieee754/dbl-64/mpsqrt.c (__mpsqrt): Likewise.
+	* sysdeps/ieee754/dbl-64/sincos32.c (ss32): Likewise.
+	(cc32): Likewise.
+
+	* sysdeps/ieee754/dbl-64/mpa.c (__sqr): New function.
+	* sysdeps/ieee754/dbl-64/mpa.h (__sqr): Declare.
+	* sysdeps/ieee754/dbl-64/mpexp.c (__mpexp): use __sqr instead
+	of __mul for squares.
+	* sysdeps/powerpc/powerpc32/power4/fpu/mpa.c (__sqr): New
+	function
+	* sysdeps/powerpc/powerpc64/power4/fpu/mpa.c (__sqr):
+	Likewise.
+	* sysdeps/x86_64/fpu/multiarch/mpa-avx.c: Define __sqr.
+	* sysdeps/x86_64/fpu/multiarch/mpa-fma4.c: Likewise.
+
 2013-02-13  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	[BZ #13550]

Modified: fsf/trunk/libc/csu/libc-start.c
==============================================================================
--- fsf/trunk/libc/csu/libc-start.c (original)
+++ fsf/trunk/libc/csu/libc-start.c Fri Feb 15 00:02:01 2013
@@ -19,7 +19,6 @@
 #include <stdio.h>
 #include <unistd.h>
 #include <ldsodefs.h>
-#include <bp-sym.h>
 
 extern void __libc_init_first (int argc, char **argv, char **envp);
 #ifndef SHARED
@@ -86,7 +85,7 @@
 # endif
 #else
 # define STATIC
-# define LIBC_START_MAIN BP_SYM (__libc_start_main)
+# define LIBC_START_MAIN __libc_start_main
 #endif
 
 #ifdef MAIN_AUXVEC_ARG

Modified: fsf/trunk/libc/elf/dl-open.c
==============================================================================
--- fsf/trunk/libc/elf/dl-open.c (original)
+++ fsf/trunk/libc/elf/dl-open.c Fri Feb 15 00:02:01 2013
@@ -28,7 +28,6 @@
 #include <sys/param.h>
 #include <bits/libc-lock.h>
 #include <ldsodefs.h>
-#include <bp-sym.h>
 #include <caller.h>
 #include <sysdep-cancel.h>
 #include <tls.h>
@@ -43,7 +42,7 @@
 						     ElfW(Word) phnum,
 						     ElfW(Addr) *user_entry,
 						     ElfW(auxv_t) *auxv));
-weak_extern (BP_SYM (_dl_sysdep_start))
+weak_extern (_dl_sysdep_start)
 
 extern int __libc_multiple_libcs;	/* Defined in init-first.c.  */
 

Modified: fsf/trunk/libc/math/fegetenv.c
==============================================================================
--- fsf/trunk/libc/math/fegetenv.c (original)
+++ fsf/trunk/libc/math/fegetenv.c Fri Feb 15 00:02:01 2013
@@ -19,7 +19,6 @@
 
 #include <fenv.h>
 #include <shlib-compat.h>
-#include <bp-sym.h>
 
 int
 __fegetenv (fenv_t *envp)
@@ -29,9 +28,9 @@
 }
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fegetenv, __old_fegetenv)
-compat_symbol (libm, BP_SYM (__old_fegetenv), BP_SYM (fegetenv), GLIBC_2_1);
+compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
 #endif
 libm_hidden_ver (__fegetenv, fegetenv)
-versioned_symbol (libm, BP_SYM (__fegetenv), BP_SYM (fegetenv), GLIBC_2_2);
+versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
 
 stub_warning (fegetenv)

Modified: fsf/trunk/libc/nptl/sysdeps/pthread/bits/libc-lockP.h
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/pthread/bits/libc-lockP.h (original)
+++ fsf/trunk/libc/nptl/sysdeps/pthread/bits/libc-lockP.h Fri Feb 15 00:02:01 2013
@@ -375,31 +375,30 @@
    single-threaded processes.  */
 #ifndef __NO_WEAK_PTHREAD_ALIASES
 # ifdef weak_extern
-#  include <bp-sym.h>
-weak_extern (BP_SYM (__pthread_mutex_init))
-weak_extern (BP_SYM (__pthread_mutex_destroy))
-weak_extern (BP_SYM (__pthread_mutex_lock))
-weak_extern (BP_SYM (__pthread_mutex_trylock))
-weak_extern (BP_SYM (__pthread_mutex_unlock))
-weak_extern (BP_SYM (__pthread_mutexattr_init))
-weak_extern (BP_SYM (__pthread_mutexattr_destroy))
-weak_extern (BP_SYM (__pthread_mutexattr_settype))
-weak_extern (BP_SYM (__pthread_rwlock_init))
-weak_extern (BP_SYM (__pthread_rwlock_destroy))
-weak_extern (BP_SYM (__pthread_rwlock_rdlock))
-weak_extern (BP_SYM (__pthread_rwlock_tryrdlock))
-weak_extern (BP_SYM (__pthread_rwlock_wrlock))
-weak_extern (BP_SYM (__pthread_rwlock_trywrlock))
-weak_extern (BP_SYM (__pthread_rwlock_unlock))
-weak_extern (BP_SYM (__pthread_key_create))
-weak_extern (BP_SYM (__pthread_setspecific))
-weak_extern (BP_SYM (__pthread_getspecific))
-weak_extern (BP_SYM (__pthread_once))
+weak_extern (__pthread_mutex_init)
+weak_extern (__pthread_mutex_destroy)
+weak_extern (__pthread_mutex_lock)
+weak_extern (__pthread_mutex_trylock)
+weak_extern (__pthread_mutex_unlock)
+weak_extern (__pthread_mutexattr_init)
+weak_extern (__pthread_mutexattr_destroy)
+weak_extern (__pthread_mutexattr_settype)
+weak_extern (__pthread_rwlock_init)
+weak_extern (__pthread_rwlock_destroy)
+weak_extern (__pthread_rwlock_rdlock)
+weak_extern (__pthread_rwlock_tryrdlock)
+weak_extern (__pthread_rwlock_wrlock)
+weak_extern (__pthread_rwlock_trywrlock)
+weak_extern (__pthread_rwlock_unlock)
+weak_extern (__pthread_key_create)
+weak_extern (__pthread_setspecific)
+weak_extern (__pthread_getspecific)
+weak_extern (__pthread_once)
 weak_extern (__pthread_initialize)
 weak_extern (__pthread_atfork)
-weak_extern (BP_SYM (_pthread_cleanup_push_defer))
-weak_extern (BP_SYM (_pthread_cleanup_pop_restore))
-weak_extern (BP_SYM (pthread_setcancelstate))
+weak_extern (_pthread_cleanup_push_defer)
+weak_extern (_pthread_cleanup_pop_restore)
+weak_extern (pthread_setcancelstate)
 # else
 #  pragma weak __pthread_mutex_init
 #  pragma weak __pthread_mutex_destroy

Modified: fsf/trunk/libc/ports/ChangeLog.aarch64
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.aarch64 (original)
+++ fsf/trunk/libc/ports/ChangeLog.aarch64 Fri Feb 15 00:02:01 2013
@@ -1,3 +1,7 @@
+2013-02-14  Marcus Shawcroft  <marcus.shawcroft@xxxxxxxxxx>
+
+	* sysdeps/aarch64/libm-test-ulps: Regenerate.
+
 2013-02-13  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	[BZ #13550]

Modified: fsf/trunk/libc/ports/ChangeLog.alpha
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.alpha (original)
+++ fsf/trunk/libc/ports/ChangeLog.alpha Fri Feb 15 00:02:01 2013
@@ -1,3 +1,9 @@
+2013-02-14  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #13550]
+	* sysdeps/alpha/memchr.c: Do not include <bp-sym.h>.
+	(memchr): Do not use BP_SYM in weak_alias.
+
 2013-02-13  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	[BZ #13550]

Modified: fsf/trunk/libc/ports/ChangeLog.hppa
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.hppa (original)
+++ fsf/trunk/libc/ports/ChangeLog.hppa Fri Feb 15 00:02:01 2013
@@ -1,3 +1,10 @@
+2013-02-14  Carlos O'Donell  <carlos@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c
+	(lll_unlock_wake_cb): Remove.
+	* ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:
+	Remove prototype for lll_unlock_wake_cb.
+
 2013-01-10  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/hppa/fpu/fpu_control.h (_FPU_GETCW): Use __extension__

Modified: fsf/trunk/libc/ports/ChangeLog.powerpc
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.powerpc (original)
+++ fsf/trunk/libc/ports/ChangeLog.powerpc Fri Feb 15 00:02:01 2013
@@ -1,3 +1,19 @@
+2013-02-14  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #13550]
+	* sysdeps/powerpc/nofpu/fegetenv.c: Do not include <bp-sym.h>.
+	(fegetenv): Do not use BP_SYM in versioned symbols.
+	* sysdeps/powerpc/nofpu/fesetenv.c: Do not include <bp-sym.h>.
+	(fesetenv): Do not use BP_SYM in versioned symbols.
+	* sysdeps/powerpc/nofpu/feupdateenv.c: Do not include <bp-sym.h>.
+	(feupdateenv): Do not use BP_SYM in versioned symbols.
+	* sysdeps/powerpc/nofpu/fgetexcptflg.c: Do not include <bp-sym.h>.
+	(fegetexceptflag): Do not use BP_SYM in versioned symbols.
+	* sysdeps/powerpc/nofpu/fraiseexcpt.c: Do not include <bp-sym.h>.
+	(feraiseexcept): Do not use BP_SYM in versioned symbols.
+	* sysdeps/powerpc/nofpu/fsetexcptflg.c: Do not include <bp-sym.h>.
+	(fesetexceptflag): Do not use BP_SYM in versioned symbols.
+
 2013-01-02  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* All files with FSF copyright notices: Update copyright dates

Modified: fsf/trunk/libc/ports/sysdeps/aarch64/libm-test-ulps
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/aarch64/libm-test-ulps (original)
+++ fsf/trunk/libc/ports/sysdeps/aarch64/libm-test-ulps Fri Feb 15 00:02:01 2013
@@ -146,6 +146,8 @@
 Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
 double: 1
 float: 1
@@ -182,6 +184,8 @@
 Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
 double: 1
 float: 1
@@ -194,6 +198,74 @@
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacos (-0.5 + +0 i) == 2.094395102393195492308428922186335256131 - 0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0 i) == 2.094395102393195492308428922186335256131 + +0 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p500 + 1.0 i) == 3.141592653589793238462643383279502884197 - 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p500 - 1.0 i) == 3.141592653589793238462643383279502884197 + 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p5000 + 1.0 i) == 3.141592653589793238462643383279502884197 - 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p5000 - 1.0 i) == 3.141592653589793238462643383279502884197 + 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 + 0x1p50 i) == 1.570796326794897507409741391764983781004 - 3.535050620855721078027883819436759661753e1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1p500 i) == 1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1p5000 i) == 1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 - 0x1p50 i) == 1.570796326794897507409741391764983781004 + 3.535050620855721078027883819436759661753e1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1p500 i) == 1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1p5000 i) == 1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
 double: 1
 float: 1
@@ -201,6 +273,11 @@
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacos (-2 - 3 i) == 2.1414491111159960199416055713254211 + 1.9833870299165354323470769028940395 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
 double: 1
 idouble: 1
@@ -212,6 +289,65 @@
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442097 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442097 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 - 7.107906849659093345062145442726115449315e2 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 - 8.973081118419833726837456344608533993585e1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp16383 + 0x1.fp16383 i) == 7.853981633974483096156608458198757210493e-1 - 1.135753137836666928715489992987020363057e4 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p500 + 1.0 i) == 3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p500 - 1.0 i) == 3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p5000 + 1.0 i) == 7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p5000 - 1.0 i) == 7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.0 + 0x1p500 i) == 1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.0 + 0x1p5000 i) == 1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1p500 i) == 1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1p5000 i) == 1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
@@ -332,6 +468,8 @@
 Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
 double: 1
 float: 1
@@ -368,6 +506,8 @@
 Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
 double: 1
 float: 1
@@ -380,6 +520,56 @@
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i) == -2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i) == -2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i) == -1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i) == -1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 1.5 i) == -4.516698239814521372306784062043266700598e-4933 + 1.194763217287109304111930828519090523536 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 1.5 i) == -4.516698239814521372306784062043266700598e-4933 - 1.194763217287109304111930828519090523536 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p500 + 1.0 i) == -1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p500 - 1.0 i) == -1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p5000 + 1.0 i) == -1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p5000 - 1.0 i) == -1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1p500 i) == -3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1p5000 i) == -7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1p500 i) == -3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1p5000 i) == -7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
 double: 1
 float: 1
@@ -393,6 +583,65 @@
 idouble: 1
 ifloat: 1
 Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i) == 2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i) == 2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i) == 1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i) == 1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 1.5 i) == 4.516698239814521372306784062043266700598e-4933 + 1.194763217287109304111930828519090523536 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 1.5 i) == 4.516698239814521372306784062043266700598e-4933 - 1.194763217287109304111930828519090523536 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 + 7.107906849659093345062145442726115449315e2 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 + 8.973081118419833726837456344608533993585e1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i) == 7.853981633974483096156608458198757210493e-1 + 1.135753137836666928715489992987020363057e4 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p500 + 1.0 i) == 1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p500 - 1.0 i) == 1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p5000 + 1.0 i) == 1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p5000 - 1.0 i) == 1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1p500 i) == 3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1p5000 i) == 7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1p500 i) == 3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1p5000 i) == 7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
@@ -432,6 +681,18 @@
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (-0x1p500 + 1.0 i) == -3.472667374605326000180332928505464606058e2 + 3.054936363499604682051979393213617699789e-151 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p500 - 1.0 i) == -3.472667374605326000180332928505464606058e2 - 3.054936363499604682051979393213617699789e-151 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p5000 + 1.0 i) == -3.466429049980286492395577839412341016946e3 + 7.079811261048172892385615158694057552948e-1506 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p5000 - 1.0 i) == -3.466429049980286492395577839412341016946e3 - 7.079811261048172892385615158694057552948e-1506 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
 double: 2
 float: 1
@@ -439,6 +700,12 @@
 ifloat: 1
 ildouble: 3
 ldouble: 3
+Test "Real part of: casinh (-1.0 + 0x1p500 i) == -3.472667374605326000180332928505464606058e2 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1p5000 i) == -3.466429049980286492395577839412341016946e3 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
 double: 2
 float: 1
@@ -446,6 +713,12 @@
 ifloat: 1
 ildouble: 3
 ldouble: 3
+Test "Real part of: casinh (-1.0 - 0x1p500 i) == -3.472667374605326000180332928505464606058e2 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0x1p5000 i) == -3.466429049980286492395577839412341016946e3 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
 double: 2
 float: 1
@@ -453,6 +726,19 @@
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.5 + 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.5 + 0x1.fp-16385 i) == -1.194763217287109304111930828519090523536 + 4.516698239814521372306784062043266700598e-4933 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
 double: 2
 float: 1
@@ -460,6 +746,19 @@
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.5 - 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.5 - 0x1.fp-16385 i) == -1.194763217287109304111930828519090523536 - 4.516698239814521372306784062043266700598e-4933 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
 double: 5
 float: 1
@@ -477,9 +776,13 @@
 Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
 float: 1
 ifloat: 1
@@ -492,6 +795,27 @@
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i) == 1.135753137836666928715489992987020363057e4 + 7.853981633974483096156608458198757210493e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p500 + 1.0 i) == 3.472667374605326000180332928505464606058e2 + 3.054936363499604682051979393213617699789e-151 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p500 - 1.0 i) == 3.472667374605326000180332928505464606058e2 - 3.054936363499604682051979393213617699789e-151 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p5000 + 1.0 i) == 3.466429049980286492395577839412341016946e3 + 7.079811261048172892385615158694057552948e-1506 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p5000 - 1.0 i) == 3.466429049980286492395577839412341016946e3 - 7.079811261048172892385615158694057552948e-1506 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
 double: 1
 float: 1
@@ -499,6 +823,12 @@
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1p500 i) == 3.472667374605326000180332928505464606058e2 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1p5000 i) == 3.466429049980286492395577839412341016946e3 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
 double: 1
 float: 1
@@ -506,14 +836,46 @@
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (1.0 - 0x1p500 i) == 3.472667374605326000180332928505464606058e2 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0x1p5000 i) == 3.466429049980286492395577839412341016946e3 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
 double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (1.5 + 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.5 + 0x1.fp-129 i) == 1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.5 + 0x1.fp-16385 i) == 1.194763217287109304111930828519090523536 + 4.516698239814521372306784062043266700598e-4933 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.5 - 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.5 - 0x1.fp-129 i) == 1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.5 - 0x1.fp-16385 i) == 1.194763217287109304111930828519090523536 - 4.516698239814521372306784062043266700598e-4933 i":
 ildouble: 1
 ldouble: 1
 
@@ -3090,7 +3452,9 @@
 
 Function: Real part of "cacos":
 double: 1
-idouble: 1
+float: 1
+idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 

Modified: fsf/trunk/libc/ports/sysdeps/alpha/memchr.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/alpha/memchr.c (original)
+++ fsf/trunk/libc/ports/sysdeps/alpha/memchr.c Fri Feb 15 00:02:01 2013
@@ -16,7 +16,6 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <string.h>
-#include <bp-sym.h>
 
 typedef unsigned long word;
 
@@ -170,6 +169,6 @@
 }
 
 #ifdef weak_alias
-weak_alias (__memchr, BP_SYM (memchr))
+weak_alias (__memchr, memchr)
 #endif
 libc_hidden_builtin_def (memchr)

Modified: fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fegetenv.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fegetenv.c (original)
+++ fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fegetenv.c Fri Feb 15 00:02:01 2013
@@ -19,7 +19,6 @@
 
 #include "soft-fp.h"
 #include "soft-supp.h"
-#include <bp-sym.h>
 
 extern int __sim_exceptions;
 extern int __sim_disabled_exceptions;
@@ -42,8 +41,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fegetenv, __old_fegetenv)
-compat_symbol (libm, BP_SYM (__old_fegetenv), BP_SYM (fegetenv), GLIBC_2_1);
+compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__fegetenv, fegetenv)
-versioned_symbol (libm, BP_SYM (__fegetenv), BP_SYM (fegetenv), GLIBC_2_2);
+versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);

Modified: fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fesetenv.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fesetenv.c (original)
+++ fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fesetenv.c Fri Feb 15 00:02:01 2013
@@ -19,7 +19,6 @@
 
 #include "soft-fp.h"
 #include "soft-supp.h"
-#include <bp-sym.h>
 
 int
 __fesetenv (const fenv_t *envp)
@@ -36,8 +35,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fesetenv, __old_fesetenv)
-compat_symbol (libm, BP_SYM (__old_fesetenv), BP_SYM (fesetenv), GLIBC_2_1);
+compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__fesetenv, fesetenv)
-versioned_symbol (libm, BP_SYM (__fesetenv), BP_SYM (fesetenv), GLIBC_2_2);
+versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);

Modified: fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/feupdateenv.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/feupdateenv.c (original)
+++ fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/feupdateenv.c Fri Feb 15 00:02:01 2013
@@ -21,7 +21,6 @@
 #include "soft-fp.h"
 #include "soft-supp.h"
 #include <signal.h>
-#include <bp-sym.h>
 
 int
 __feupdateenv (const fenv_t *envp)
@@ -45,8 +44,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feupdateenv, __old_feupdateenv)
-compat_symbol (libm, BP_SYM (__old_feupdateenv), BP_SYM (feupdateenv), GLIBC_2_1);
+compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__feupdateenv, feupdateenv)
-versioned_symbol (libm, BP_SYM (__feupdateenv), BP_SYM (feupdateenv), GLIBC_2_2);
+versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);

Modified: fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c (original)
+++ fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c Fri Feb 15 00:02:01 2013
@@ -19,7 +19,6 @@
 
 #include "soft-fp.h"
 #include "soft-supp.h"
-#include <bp-sym.h>
 
 int
 __fegetexceptflag (fexcept_t *flagp, int excepts)
@@ -32,7 +31,7 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fegetexceptflag, __old_fegetexceptflag)
-compat_symbol (libm, BP_SYM (__old_fegetexceptflag), BP_SYM (fegetexceptflag), GLIBC_2_1);
+compat_symbol (libm, __old_fegetexceptflag, fegetexceptflag, GLIBC_2_1);
 #endif
 
-versioned_symbol (libm, BP_SYM (__fegetexceptflag), BP_SYM (fegetexceptflag), GLIBC_2_2);
+versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2);

Modified: fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c Fri Feb 15 00:02:01 2013
@@ -20,7 +20,6 @@
 #include "soft-fp.h"
 #include "soft-supp.h"
 #include <signal.h>
-#include <bp-sym.h>
 
 #undef feraiseexcept
 int
@@ -35,8 +34,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feraiseexcept, __old_feraiseexcept)
-compat_symbol (libm, BP_SYM (__old_feraiseexcept), BP_SYM (feraiseexcept), GLIBC_2_1);
+compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__feraiseexcept, feraiseexcept)
-versioned_symbol (libm, BP_SYM (__feraiseexcept), BP_SYM (feraiseexcept), GLIBC_2_2);
+versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);

Modified: fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c (original)
+++ fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c Fri Feb 15 00:02:01 2013
@@ -19,7 +19,6 @@
 
 #include "soft-fp.h"
 #include "soft-supp.h"
-#include <bp-sym.h>
 
 int
 __fesetexceptflag(const fexcept_t *flagp, int excepts)
@@ -33,7 +32,7 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fesetexceptflag, __old_fesetexceptflag)
-compat_symbol (libm, BP_SYM (__old_fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_1);
+compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1);
 #endif
 
-versioned_symbol (libm, BP_SYM (__fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_2);
+versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c Fri Feb 15 00:02:01 2013
@@ -87,17 +87,6 @@
 /* These don't get included in libc.so  */
 #ifdef IS_IN_libpthread
 int
-lll_unlock_wake_cb (lll_lock_t *futex)
-{
-  int val = atomic_exchange_rel (futex, 0);
-
-  if (__builtin_expect (val > 1, 0))
-    lll_private_futex_wake (futex, 1);
-  return 0;
-}
-
-
-int
 __lll_timedwait_tid (int *tidp, const struct timespec *abstime)
 {
   int tid;
@@ -134,6 +123,5 @@
 
   return 0;
 }
-
 #endif
 

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h Fri Feb 15 00:02:01 2013
@@ -317,8 +317,6 @@
 #define THREAD_INIT_LOCK(PD, LOCK) \
   (PD)->LOCK = LLL_LOCK_INITIALIZER
 
-extern int lll_unlock_wake_cb (lll_lock_t *__futex) attribute_hidden;
-
 /* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
    wakeup when the clone terminates.  The memory location contains the
    thread ID while the clone is running and is reset to zero

Modified: fsf/trunk/libc/string/memchr.c
==============================================================================
--- fsf/trunk/libc/string/memchr.c (original)
+++ fsf/trunk/libc/string/memchr.c Fri Feb 15 00:02:01 2013
@@ -47,11 +47,6 @@
 #endif
 
 #include <sys/types.h>
-#if HAVE_BP_SYM_H || defined _LIBC
-#include <bp-sym.h>
-#else
-# define BP_SYM(sym) sym
-#endif
 
 #undef memchr
 #undef __memchr
@@ -203,6 +198,6 @@
   return 0;
 }
 #ifdef weak_alias
-weak_alias (__memchr, BP_SYM (memchr))
+weak_alias (__memchr, memchr)
 #endif
 libc_hidden_builtin_def (memchr)

Modified: fsf/trunk/libc/sysdeps/i386/fpu/fegetenv.c
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/fegetenv.c (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/fegetenv.c Fri Feb 15 00:02:01 2013
@@ -18,7 +18,6 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <fenv.h>
-#include <bp-sym.h>
 
 int
 __fegetenv (fenv_t *envp)
@@ -36,8 +35,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fegetenv, __old_fegetenv)
-compat_symbol (libm, BP_SYM (__old_fegetenv), BP_SYM (fegetenv), GLIBC_2_1);
+compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__fegetenv, fegetenv)
-versioned_symbol (libm, BP_SYM (__fegetenv), BP_SYM (fegetenv), GLIBC_2_2);
+versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);

Modified: fsf/trunk/libc/sysdeps/i386/fpu/fesetenv.c
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/fesetenv.c (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/fesetenv.c Fri Feb 15 00:02:01 2013
@@ -19,7 +19,6 @@
 
 #include <fenv.h>
 #include <assert.h>
-#include <bp-sym.h>
 
 
 int
@@ -80,8 +79,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fesetenv, __old_fesetenv)
-compat_symbol (libm, BP_SYM (__old_fesetenv), BP_SYM (fesetenv), GLIBC_2_1);
+compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__fesetenv, fesetenv)
-versioned_symbol (libm, BP_SYM (__fesetenv), BP_SYM (fesetenv), GLIBC_2_2);
+versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);

Modified: fsf/trunk/libc/sysdeps/i386/fpu/feupdateenv.c
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/feupdateenv.c (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/feupdateenv.c Fri Feb 15 00:02:01 2013
@@ -18,7 +18,6 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <fenv.h>
-#include <bp-sym.h>
 #include <unistd.h>
 #include <dl-procinfo.h>
 #include <ldsodefs.h>
@@ -53,8 +52,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feupdateenv, __old_feupdateenv)
-compat_symbol (libm, BP_SYM (__old_feupdateenv), BP_SYM (feupdateenv), GLIBC_2_1);
+compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__feupdateenv, feupdateenv)
-versioned_symbol (libm, BP_SYM (__feupdateenv), BP_SYM (feupdateenv), GLIBC_2_2);
+versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);

Modified: fsf/trunk/libc/sysdeps/i386/fpu/fsetexcptflg.c
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/fsetexcptflg.c (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/fsetexcptflg.c Fri Feb 15 00:02:01 2013
@@ -19,7 +19,6 @@
 
 #include <fenv.h>
 #include <math.h>
-#include <bp-sym.h>
 #include <unistd.h>
 #include <ldsodefs.h>
 #include <dl-procinfo.h>
@@ -64,7 +63,7 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fesetexceptflag, __old_fesetexceptflag)
-compat_symbol (libm, BP_SYM (__old_fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_1);
+compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1);
 #endif
 
-versioned_symbol (libm, BP_SYM (__fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_2);
+versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);

Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpa.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpa.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpa.c Fri Feb 15 00:02:01 2013
@@ -702,6 +702,97 @@
   Z[0] = X[0] * Y[0];
 }
 
+/* Square *X and store result in *Y.  X and Y may not overlap.  For P in
+   [1, 2, 3], the exact result is truncated to P digits.  In case P > 3 the
+   error is bounded by 1.001 ULP.  This is a faster special case of
+   multiplication.  */
+void
+SECTION
+__sqr (const mp_no *x, mp_no *y, int p)
+{
+  long i, j, k, ip;
+  double u, yk;
+
+  /* Is z=0?  */
+  if (__glibc_unlikely (X[0] == ZERO))
+    {
+      Y[0] = ZERO;
+      return;
+    }
+
+  /* We need not iterate through all X's since it's pointless to
+     multiply zeroes.  */
+  for (ip = p; ip > 0; ip--)
+    if (X[ip] != ZERO)
+      break;
+
+  k = (__glibc_unlikely (p < 3)) ? p + p : p + 3;
+
+  while (k > 2 * ip + 1)
+    Y[k--] = ZERO;
+
+  yk = ZERO;
+
+  while (k > p)
+    {
+      double yk2 = 0.0;
+      long lim = k / 2;
+
+      if (k % 2 == 0)
+        {
+	  yk += X[lim] * X[lim];
+	  lim--;
+	}
+
+      for (i = k - p, j = p; i <= lim; i++, j--)
+	yk2 += X[i] * X[j];
+
+      yk += 2.0 * yk2;
+
+      u = (yk + CUTTER) - CUTTER;
+      if (u > yk)
+	u -= RADIX;
+      Y[k--] = yk - u;
+      yk = u * RADIXI;
+    }
+
+  while (k > 1)
+    {
+      double yk2 = 0.0;
+      long lim = k / 2;
+
+      if (k % 2 == 0)
+        {
+	  yk += X[lim] * X[lim];
+	  lim--;
+	}
+
+      for (i = 1, j = k - 1; i <= lim; i++, j--)
+	yk2 += X[i] * X[j];
+
+      yk += 2.0 * yk2;
+
+      u = (yk + CUTTER) - CUTTER;
+      if (u > yk)
+	u -= RADIX;
+      Y[k--] = yk - u;
+      yk = u * RADIXI;
+    }
+  Y[k] = yk;
+
+  /* Squares are always positive.  */
+  Y[0] = 1.0;
+
+  EY = 2 * EX;
+  /* Is there a carry beyond the most significant digit?  */
+  if (__glibc_unlikely (Y[1] == ZERO))
+    {
+      for (i = 1; i <= p; i++)
+	Y[i] = Y[i + 1];
+      EY--;
+    }
+}
+
 /* Invert *X and store in *Y.  Relative error bound:
    - For P = 2: 1.001 * R ^ (1 - P)
    - For P = 3: 1.063 * R ^ (1 - P)

Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpa.h
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpa.h (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpa.h Fri Feb 15 00:02:01 2013
@@ -115,6 +115,7 @@
 void __add (const mp_no *, const mp_no *, mp_no *, int);
 void __sub (const mp_no *, const mp_no *, mp_no *, int);
 void __mul (const mp_no *, const mp_no *, mp_no *, int);
+void __sqr (const mp_no *, mp_no *, int);
 void __dvd (const mp_no *, const mp_no *, mp_no *, int);
 
 extern void __mpatan (mp_no *, mp_no *, int);

Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpatan.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpatan.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpatan.c Fri Feb 15 00:02:01 2013
@@ -66,7 +66,7 @@
     mptwoim1.d[0] = ONE;
 
 				 /* Reduce x m times */
-    __mul(x,x,&mpsm,p);
+    __sqr(x,&mpsm,p);
     if (m==0) __cpy(x,&mps,p);
     else {
       for (i=0; i<m; i++) {

Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpexp.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpexp.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpexp.c Fri Feb 15 00:02:01 2013
@@ -145,14 +145,14 @@
   /* Raise polynomial value to the power of 2**m. Put result in y.  */
   for (k = 0, j = 0; k < m;)
     {
-      __mul (&mpt2, &mpt2, &mpt1, p);
+      __sqr (&mpt2, &mpt1, p);
       k++;
       if (k == m)
 	{
 	  j = 1;
 	  break;
 	}
-      __mul (&mpt1, &mpt1, &mpt2, p);
+      __sqr (&mpt1, &mpt2, p);
       k++;
     }
   if (j)

Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpsqrt.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpsqrt.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/mpsqrt.c Fri Feb 15 00:02:01 2013
@@ -63,7 +63,7 @@
 
   m=__mpsqrt_mp[p];
   for (i=0; i<m; i++) {
-    __mul(&mpu,&mpu,&mpt1,p);
+    __sqr(&mpu,&mpt1,p);
     __mul(&mpt1,&mpz,&mpt2,p);
     __sub(&mp3halfs,&mpt2,&mpt1,p);
     __mul(&mpu,&mpt1,&mpt2,p);

Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/sincos32.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/sincos32.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/sincos32.c Fri Feb 15 00:02:01 2013
@@ -67,7 +67,7 @@
 #endif
   for (i=1;i<=p;i++) mpk.d[i]=0;
 
-  __mul(x,x,&x2,p);
+  __sqr(x,&x2,p);
   __cpy(&oofac27,&gor,p);
   __cpy(&gor,&sum,p);
   for (a=27.0;a>1.0;a-=2.0) {
@@ -99,7 +99,7 @@
 #endif
   for (i=1;i<=p;i++) mpk.d[i]=0;
 
-  __mul(x,x,&x2,p);
+  __sqr(x,&x2,p);
   mpk.d[1]=27.0;
   __mul(&oofac27,&mpk,&gor,p);
   __cpy(&gor,&sum,p);

Modified: fsf/trunk/libc/sysdeps/posix/open64.c
==============================================================================
--- fsf/trunk/libc/sysdeps/posix/open64.c (original)
+++ fsf/trunk/libc/sysdeps/posix/open64.c Fri Feb 15 00:02:01 2013
@@ -17,7 +17,6 @@
 
 #include <fcntl.h>
 #include <stdarg.h>
-#include <bp-sym.h>
 #include <sysdep-cancel.h>
 
 /* Open FILE with access OFLAG.  If OFLAG includes O_CREAT,
@@ -46,6 +45,6 @@
 
   return result;
 }
-weak_alias (__libc_open64, BP_SYM (__open64))
-libc_hidden_weak (BP_SYM (__open64))
-weak_alias (__libc_open64, BP_SYM (open64))
+weak_alias (__libc_open64, __open64)
+libc_hidden_weak (__open64)
+weak_alias (__libc_open64, open64)

Modified: fsf/trunk/libc/sysdeps/powerpc/fpu/fegetenv.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/fpu/fegetenv.c (original)
+++ fsf/trunk/libc/sysdeps/powerpc/fpu/fegetenv.c Fri Feb 15 00:02:01 2013
@@ -17,7 +17,6 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <fenv_libc.h>
-#include <bp-sym.h>
 
 int
 __fegetenv (fenv_t *envp)
@@ -31,8 +30,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fegetenv, __old_fegetenv)
-compat_symbol (libm, BP_SYM (__old_fegetenv), BP_SYM (fegetenv), GLIBC_2_1);
+compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__fegetenv, fegetenv)
-versioned_symbol (libm, BP_SYM (__fegetenv), BP_SYM (fegetenv), GLIBC_2_2);
+versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);

Modified: fsf/trunk/libc/sysdeps/powerpc/fpu/fesetenv.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/fpu/fesetenv.c (original)
+++ fsf/trunk/libc/sysdeps/powerpc/fpu/fesetenv.c Fri Feb 15 00:02:01 2013
@@ -18,7 +18,6 @@
 
 #include <fenv_libc.h>
 #include <fpu_control.h>
-#include <bp-sym.h>
 
 #define _FPU_MASK_ALL (_FPU_MASK_ZM | _FPU_MASK_OM | _FPU_MASK_UM | _FPU_MASK_XM | _FPU_MASK_IM)
 
@@ -54,8 +53,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fesetenv, __old_fesetenv)
-compat_symbol (libm, BP_SYM (__old_fesetenv), BP_SYM (fesetenv), GLIBC_2_1);
+compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__fesetenv, fesetenv)
-versioned_symbol (libm, BP_SYM (__fesetenv), BP_SYM (fesetenv), GLIBC_2_2);
+versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);

Modified: fsf/trunk/libc/sysdeps/powerpc/fpu/feupdateenv.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/fpu/feupdateenv.c (original)
+++ fsf/trunk/libc/sysdeps/powerpc/fpu/feupdateenv.c Fri Feb 15 00:02:01 2013
@@ -19,7 +19,6 @@
 
 #include <fenv_libc.h>
 #include <fpu_control.h>
-#include <bp-sym.h>
 
 #define _FPU_MASK_ALL (_FPU_MASK_ZM | _FPU_MASK_OM | _FPU_MASK_UM | _FPU_MASK_XM | _FPU_MASK_IM)
 
@@ -61,8 +60,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feupdateenv, __old_feupdateenv)
-compat_symbol (libm, BP_SYM (__old_feupdateenv), BP_SYM (feupdateenv), GLIBC_2_1);
+compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__feupdateenv, feupdateenv)
-versioned_symbol (libm, BP_SYM (__feupdateenv), BP_SYM (feupdateenv), GLIBC_2_2);
+versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);

Modified: fsf/trunk/libc/sysdeps/powerpc/fpu/fgetexcptflg.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/fpu/fgetexcptflg.c (original)
+++ fsf/trunk/libc/sysdeps/powerpc/fpu/fgetexcptflg.c Fri Feb 15 00:02:01 2013
@@ -17,7 +17,6 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <fenv_libc.h>
-#include <bp-sym.h>
 
 int
 __fegetexceptflag (fexcept_t *flagp, int excepts)
@@ -37,7 +36,7 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fegetexceptflag, __old_fegetexceptflag)
-compat_symbol (libm, BP_SYM (__old_fegetexceptflag), BP_SYM (fegetexceptflag), GLIBC_2_1);
+compat_symbol (libm, __old_fegetexceptflag, fegetexceptflag, GLIBC_2_1);
 #endif
 
-versioned_symbol (libm, BP_SYM (__fegetexceptflag), BP_SYM (fegetexceptflag), GLIBC_2_2);
+versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2);

Modified: fsf/trunk/libc/sysdeps/powerpc/fpu/fraiseexcpt.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/fpu/fraiseexcpt.c (original)
+++ fsf/trunk/libc/sysdeps/powerpc/fpu/fraiseexcpt.c Fri Feb 15 00:02:01 2013
@@ -17,7 +17,6 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <fenv_libc.h>
-#include <bp-sym.h>
 
 #undef feraiseexcept
 int
@@ -61,8 +60,8 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feraiseexcept, __old_feraiseexcept)
-compat_symbol (libm, BP_SYM (__old_feraiseexcept), BP_SYM (feraiseexcept), GLIBC_2_1);
+compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
 #endif
 
 libm_hidden_ver (__feraiseexcept, feraiseexcept)
-versioned_symbol (libm, BP_SYM (__feraiseexcept), BP_SYM (feraiseexcept), GLIBC_2_2);
+versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);

Modified: fsf/trunk/libc/sysdeps/powerpc/fpu/fsetexcptflg.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/fpu/fsetexcptflg.c (original)
+++ fsf/trunk/libc/sysdeps/powerpc/fpu/fsetexcptflg.c Fri Feb 15 00:02:01 2013
@@ -17,7 +17,6 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <fenv_libc.h>
-#include <bp-sym.h>
 
 int
 __fesetexceptflag (const fexcept_t *flagp, int excepts)
@@ -53,7 +52,7 @@
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fesetexceptflag, __old_fesetexceptflag)
-compat_symbol (libm, BP_SYM (__old_fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_1);
+compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1);
 #endif
 
-versioned_symbol (libm, BP_SYM (__fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_2);
+versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);

Modified: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c Fri Feb 15 00:02:01 2013
@@ -105,8 +105,6 @@
   EY = EX;
   for (i = 0; i <= p; i++)
     Y[i] = X[i];
-
-  return;
 }
 
 /* Convert a multiple precision number *X into a double precision
@@ -181,7 +179,6 @@
     c *= RADIXI;
 
   *y = c;
-  return;
 #undef R
 }
 
@@ -293,8 +290,6 @@
   c = X[0] * ((z[1] + R * (z[2] + R * z[3])) - TWO10);
 
   *y = c * TWOM1032;
-  return;
-
 #undef R
 }
 
@@ -359,7 +354,6 @@
     }
   for (; i <= p2; i++)
     Y[i] = ZERO;
-  return;
 }
 
 /* Add magnitudes of *X and *Y assuming that abs (*X) >= abs (*Y) > 0.  The
@@ -493,8 +487,6 @@
     Z[k++] = Z[i++];
   for (; k <= p2;)
     Z[k++] = ZERO;
-
-  return;
 }
 
 /* Add *X and *Y and store the result in *Z.  X and Y may overlap, but not X
@@ -544,7 +536,6 @@
       else
 	Z[0] = ZERO;
     }
-  return;
 }
 
 /* Subtract *Y from *X and return the result in *Z.  X and Y may overlap but
@@ -595,7 +586,6 @@
       else
 	Z[0] = ZERO;
     }
-  return;
 }
 
 /* Multiply *X and *Y and store result in *Z.  X and Y may overlap but not X
@@ -684,7 +674,106 @@
     EZ = EX + EY;
 
   Z[0] = X[0] * Y[0];
-  return;
+}
+
+/* Square *X and store result in *Y.  X and Y may not overlap.  For P in
+   [1, 2, 3], the exact result is truncated to P digits.  In case P > 3 the
+   error is bounded by 1.001 ULP.  This is a faster special case of
+   multiplication.  */
+void
+__sqr (const mp_no *x, mp_no *y, int p)
+{
+  long i, j, k, ip;
+  double u, yk;
+
+  /* Is z=0?  */
+  if (__glibc_unlikely (X[0] == ZERO))
+    {
+      Y[0] = ZERO;
+      return;
+    }
+
+  /* We need not iterate through all X's since it's pointless to
+     multiply zeroes.  */
+  for (ip = p; ip > 0; ip--)
+    if (X[ip] != ZERO)
+      break;
+
+  k = (__glibc_unlikely (p < 3)) ? p + p : p + 3;
+
+  while (k > 2 * ip + 1)
+    Y[k--] = ZERO;
+
+  yk = ZERO;
+
+  while (k > p)
+    {
+      double yk2 = 0.0;
+      long lim = k / 2;
+
+      if (k % 2 == 0)
+        {
+	  yk += X[lim] * X[lim];
+	  lim--;
+	}
+
+      /* In __mul, this loop (and the one within the next while loop) run
+         between a range to calculate the mantissa as follows:
+
+         Z[k] = X[k] * Y[n] + X[k+1] * Y[n-1] ... + X[n-1] * Y[k+1]
+		+ X[n] * Y[k]
+
+         For X == Y, we can get away with summing halfway and doubling the
+	 result.  For cases where the range size is even, the mid-point needs
+	 to be added separately (above).  */
+      for (i = k - p, j = p; i <= lim; i++, j--)
+	yk2 += X[i] * X[j];
+
+      yk += 2.0 * yk2;
+
+      u = (yk + CUTTER) - CUTTER;
+      if (u > yk)
+	u -= RADIX;
+      Y[k--] = yk - u;
+      yk = u * RADIXI;
+    }
+
+  while (k > 1)
+    {
+      double yk2 = 0.0;
+      long lim = k / 2;
+
+      if (k % 2 == 0)
+        {
+	  yk += X[lim] * X[lim];
+	  lim--;
+	}
+
+      /* Likewise for this loop.  */
+      for (i = 1, j = k - 1; i <= lim; i++, j--)
+	yk2 += X[i] * X[j];
+
+      yk += 2.0 * yk2;
+
+      u = (yk + CUTTER) - CUTTER;
+      if (u > yk)
+	u -= RADIX;
+      Y[k--] = yk - u;
+      yk = u * RADIXI;
+    }
+  Y[k] = yk;
+
+  /* Squares are always positive.  */
+  Y[0] = 1.0;
+
+  EY = 2 * EX;
+  /* Is there a carry beyond the most significant digit?  */
+  if (__glibc_unlikely (Y[1] == ZERO))
+    {
+      for (i = 1; i <= p; i++)
+	Y[i] = Y[i + 1];
+      EY--;
+    }
 }
 
 /* Invert *X and store in *Y.  Relative error bound:
@@ -718,7 +807,6 @@
       __sub (&mptwo, y, &z, p);
       __mul (&w, &z, y, p);
     }
-  return;
 }
 
 /* Divide *X by *Y and store result in *Z.  X and Y may overlap but not X and Z
@@ -740,5 +828,4 @@
       __inv (y, &w, p);
       __mul (x, &w, z, p);
     }
-  return;
-}
+}

Modified: fsf/trunk/libc/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c Fri Feb 15 00:02:01 2013
@@ -105,8 +105,6 @@
   EY = EX;
   for (i = 0; i <= p; i++)
     Y[i] = X[i];
-
-  return;
 }
 
 /* Convert a multiple precision number *X into a double precision
@@ -181,7 +179,6 @@
     c *= RADIXI;
 
   *y = c;
-  return;
 #undef R
 }
 
@@ -293,8 +290,6 @@
   c = X[0] * ((z[1] + R * (z[2] + R * z[3])) - TWO10);
 
   *y = c * TWOM1032;
-  return;
-
 #undef R
 }
 
@@ -359,7 +354,6 @@
     }
   for (; i <= p2; i++)
     Y[i] = ZERO;
-  return;
 }
 
 /* Add magnitudes of *X and *Y assuming that abs (*X) >= abs (*Y) > 0.  The
@@ -493,8 +487,6 @@
     Z[k++] = Z[i++];
   for (; k <= p2;)
     Z[k++] = ZERO;
-
-  return;
 }
 
 /* Add *X and *Y and store the result in *Z.  X and Y may overlap, but not X
@@ -544,7 +536,6 @@
       else
 	Z[0] = ZERO;
     }
-  return;
 }
 
 /* Subtract *Y from *X and return the result in *Z.  X and Y may overlap but
@@ -595,7 +586,6 @@
       else
 	Z[0] = ZERO;
     }
-  return;
 }
 
 /* Multiply *X and *Y and store result in *Z.  X and Y may overlap but not X
@@ -684,7 +674,106 @@
     EZ = EX + EY;
 
   Z[0] = X[0] * Y[0];
-  return;
+}
+
+/* Square *X and store result in *Y.  X and Y may not overlap.  For P in
+   [1, 2, 3], the exact result is truncated to P digits.  In case P > 3 the
+   error is bounded by 1.001 ULP.  This is a faster special case of
+   multiplication.  */
+void
+__sqr (const mp_no *x, mp_no *y, int p)
+{
+  long i, j, k, ip;
+  double u, yk;
+
+  /* Is z=0?  */
+  if (__glibc_unlikely (X[0] == ZERO))
+    {
+      Y[0] = ZERO;
+      return;
+    }
+
+  /* We need not iterate through all X's since it's pointless to
+     multiply zeroes.  */
+  for (ip = p; ip > 0; ip--)
+    if (X[ip] != ZERO)
+      break;
+
+  k = (__glibc_unlikely (p < 3)) ? p + p : p + 3;
+
+  while (k > 2 * ip + 1)
+    Y[k--] = ZERO;
+
+  yk = ZERO;
+
+  while (k > p)
+    {
+      double yk2 = 0.0;
+      long lim = k / 2;
+
+      if (k % 2 == 0)
+        {
+	  yk += X[lim] * X[lim];
+	  lim--;
+	}
+
+      /* In __mul, this loop (and the one within the next while loop) run
+         between a range to calculate the mantissa as follows:
+
+         Z[k] = X[k] * Y[n] + X[k+1] * Y[n-1] ... + X[n-1] * Y[k+1]
+		+ X[n] * Y[k]
+
+         For X == Y, we can get away with summing halfway and doubling the
+	 result.  For cases where the range size is even, the mid-point needs
+	 to be added separately (above).  */
+      for (i = k - p, j = p; i <= lim; i++, j--)
+	yk2 += X[i] * X[j];
+
+      yk += 2.0 * yk2;
+
+      u = (yk + CUTTER) - CUTTER;
+      if (u > yk)
+	u -= RADIX;
+      Y[k--] = yk - u;
+      yk = u * RADIXI;
+    }
+
+  while (k > 1)
+    {
+      double yk2 = 0.0;
+      long lim = k / 2;
+
+      if (k % 2 == 0)
+        {
+	  yk += X[lim] * X[lim];
+	  lim--;
+	}
+
+      /* Likewise for this loop.  */
+      for (i = 1, j = k - 1; i <= lim; i++, j--)
+	yk2 += X[i] * X[j];
+
+      yk += 2.0 * yk2;
+
+      u = (yk + CUTTER) - CUTTER;
+      if (u > yk)
+	u -= RADIX;
+      Y[k--] = yk - u;
+      yk = u * RADIXI;
+    }
+  Y[k] = yk;
+
+  /* Squares are always positive.  */
+  Y[0] = 1.0;
+
+  EY = 2 * EX;
+  /* Is there a carry beyond the most significant digit?  */
+  if (__glibc_unlikely (Y[1] == ZERO))
+    {
+      for (i = 1; i <= p; i++)
+	Y[i] = Y[i + 1];
+      EY--;
+    }
 }
 
 /* Invert *X and store in *Y.  Relative error bound:
@@ -718,7 +807,6 @@
       __sub (&mptwo, y, &z, p);
       __mul (&w, &z, y, p);
     }
-  return;
 }
 
 /* Divide *X by *Y and store result in *Z.  X and Y may overlap but not X and Z
@@ -740,5 +828,4 @@
       __inv (y, &w, p);
       __mul (x, &w, z, p);
     }
-  return;
-}
+}

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c Fri Feb 15 00:02:01 2013
@@ -19,7 +19,6 @@
 #include <unistd.h>
 #include <ldsodefs.h>
 #include <sysdep.h>
-#include <bp-sym.h>
 
 
 int __cache_line_size attribute_hidden;
@@ -40,14 +39,12 @@
   };
 
 int
-/* GKM FIXME: GCC: this should get __BP_ prefix by virtue of the
-   BPs in the arglist of startup_info.main and startup_info.init. */
-  BP_SYM (__libc_start_main) (int argc, char **argv,
-			      char **ev,
-			      ElfW (auxv_t) * auxvec,
-			      void (*rtld_fini) (void),
-			      struct startup_info *stinfo,
-			      char **stack_on_entry)
+__libc_start_main (int argc, char **argv,
+		   char **ev,
+		   ElfW (auxv_t) * auxvec,
+		   void (*rtld_fini) (void),
+		   struct startup_info *stinfo,
+		   char **stack_on_entry)
 {
   /* the PPC SVR4 ABI says that the top thing on the stack will
      be a NULL pointer, so if not we assume that we're being called

Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/mpa-avx.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/mpa-avx.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/mpa-avx.c Fri Feb 15 00:02:01 2013
@@ -1,5 +1,6 @@
 #define __add __add_avx
 #define __mul __mul_avx
+#define __sqr __sqr_avx
 #define __sub __sub_avx
 #define __dbl_mp __dbl_mp_avx
 #define __dvd __dvd_avx

Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/mpa-fma4.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/mpa-fma4.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/mpa-fma4.c Fri Feb 15 00:02:01 2013
@@ -1,5 +1,6 @@
 #define __add __add_fma4
 #define __mul __mul_fma4
+#define __sqr __sqr_fma4
 #define __sub __sub_fma4
 #define __dbl_mp __dbl_mp_fma4
 #define __dvd __dvd_fma4

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits