summaryrefslogtreecommitdiff
path: root/libc/sysdeps/sparc
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2012-03-28 22:24:59 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2012-03-28 22:24:59 +0000
commitf4b59fd62358f28e23bae2fa8756913fd758299a (patch)
treeaa78d41676b17cfae0c8cd3c77e0004a4c946a5e /libc/sysdeps/sparc
parent11e8a843c1be2bfbacb427ca25282e6979ebb48f (diff)
Merge changes between r17700 and r17813 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@17814 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/sysdeps/sparc')
-rw-r--r--libc/sysdeps/sparc/Makefile3
-rw-r--r--libc/sysdeps/sparc/configure93
-rw-r--r--libc/sysdeps/sparc/configure.in73
-rw-r--r--libc/sysdeps/sparc/elf/configure177
-rw-r--r--libc/sysdeps/sparc/elf/configure.in75
-rw-r--r--libc/sysdeps/sparc/fpu/libm-test-ulps148
-rw-r--r--libc/sysdeps/sparc/sparc32/Makefile2
-rw-r--r--libc/sysdeps/sparc/sparc32/elf/Makefile4
-rw-r--r--libc/sysdeps/sparc/sparc32/start.S (renamed from libc/sysdeps/sparc/sparc32/elf/start.S)0
-rw-r--r--libc/sysdeps/sparc/sparc64/elf/Makefile4
-rw-r--r--libc/sysdeps/sparc/sparc64/start.S (renamed from libc/sysdeps/sparc/sparc64/elf/start.S)0
11 files changed, 253 insertions, 326 deletions
diff --git a/libc/sysdeps/sparc/Makefile b/libc/sysdeps/sparc/Makefile
index 1dd70e8b5..3f0c09640 100644
--- a/libc/sysdeps/sparc/Makefile
+++ b/libc/sysdeps/sparc/Makefile
@@ -15,3 +15,6 @@ ifeq ($(subdir),csu)
CPPFLAGS-crti.S += -fPIC
CPPFLAGS-crtn.S += -fPIC
endif
+
+# The assembler on SPARC needs the -fPIC flag even when it's assembler code.
+ASFLAGS-.os += -fPIC
diff --git a/libc/sysdeps/sparc/configure b/libc/sysdeps/sparc/configure
index 9ce761b3b..13d9c63b9 100644
--- a/libc/sysdeps/sparc/configure
+++ b/libc/sysdeps/sparc/configure
@@ -122,3 +122,96 @@ if test $libc_cv_sparc_as_vis3 = yes; then
$as_echo "#define HAVE_AS_VIS3_SUPPORT 1" >>confdefs.h
fi
+
+# Check for support of thread-local storage handling in assembler and linker.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc TLS support" >&5
+$as_echo_n "checking for sparc TLS support... " >&6; }
+if ${libc_cv_sparc_tls+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.S <<\EOF
+ .section ".tdata", "awT", @progbits
+ .globl foo
+foo: .word 1
+ .section ".tbss", "awT", @nobits
+ .globl bar
+bar: .skip 4
+ .text
+baz: sethi %tgd_hi22(foo), %l1
+ add %l1, %tgd_lo10(foo), %l1
+ add %l7, %l1, %o0, %tgd_add(foo)
+ call __tls_get_addr, %tgd_call(foo)
+ sethi %tldm_hi22(bar), %l1
+ add %l1, %tldm_lo10(bar), %l1
+ add %l7, %l1, %o0, %tldm_add(bar)
+ call __tls_get_addr, %tldm_call(bar)
+ sethi %tldo_hix22(bar), %l1
+ xor %l1, %tldo_lox10(bar), %l1
+ add %o0, %l1, %l1, %tldo_add(bar)
+ sethi %tie_hi22(foo), %l1
+ add %l1, %tie_lo10(foo), %l1
+#ifdef __arch64__
+ ldx [%l7 + %l1], %l1, %tie_ldx(foo)
+#else
+ ld [%l7 + %l1], %l1, %tie_ld(foo)
+#endif
+ add %g7, %l1, %l1, %tie_add(foo)
+ sethi %tle_hix22(foo), %l1
+ xor %l1, %tle_lox10(foo), %l1
+EOF
+if { ac_try='${CC-cc} -c $CFLAGS conftest.S 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ libc_cv_sparc_tls=yes
+else
+ libc_cv_sparc_tls=no
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc_tls" >&5
+$as_echo "$libc_cv_sparc_tls" >&6; }
+if test $libc_cv_sparc_tls = no; then
+ as_fn_error $? "the assembler must support TLS" "$LINENO" 5
+fi
+
+# Check for a GCC emitting GOTDATA relocations.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc gcc GOTDATA reloc support" >&5
+$as_echo_n "checking for sparc gcc GOTDATA reloc support... " >&6; }
+if ${libc_cv_sparc_gcc_gotdata+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<\EOF
+int data;
+int foo(void)
+{
+ return data;
+}
+EOF
+libc_cv_sparc_gcc_gotdata=no
+if { ac_try='${CC-cc} -S $CFLAGS -O2 -fPIC conftest.c 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ if grep -q 'gdop_hix22' conftest.s \
+ && grep -q 'gdop_lox10' conftest.s; then
+ libc_cv_sparc_gcc_gotdata=yes
+ fi
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc_gcc_gotdata" >&5
+$as_echo "$libc_cv_sparc_gcc_gotdata" >&6; }
+if test $libc_cv_sparc_gcc_gotdata = yes; then
+ $as_echo "#define HAVE_GCC_GOTDATA 1" >>confdefs.h
+
+fi
+
+if test $libc_cv_sparc_gcc_gotdata = yes; then
+ $as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
+
+fi
diff --git a/libc/sysdeps/sparc/configure.in b/libc/sysdeps/sparc/configure.in
index b80d9cbf5..a85d0544f 100644
--- a/libc/sysdeps/sparc/configure.in
+++ b/libc/sysdeps/sparc/configure.in
@@ -28,3 +28,76 @@ rm -f conftest*])
if test $libc_cv_sparc_as_vis3 = yes; then
AC_DEFINE(HAVE_AS_VIS3_SUPPORT)
fi
+
+# Check for support of thread-local storage handling in assembler and linker.
+AC_CACHE_CHECK(for sparc TLS support, libc_cv_sparc_tls, [dnl
+changequote(,)dnl
+cat > conftest.S <<\EOF
+ .section ".tdata", "awT", @progbits
+ .globl foo
+foo: .word 1
+ .section ".tbss", "awT", @nobits
+ .globl bar
+bar: .skip 4
+ .text
+baz: sethi %tgd_hi22(foo), %l1
+ add %l1, %tgd_lo10(foo), %l1
+ add %l7, %l1, %o0, %tgd_add(foo)
+ call __tls_get_addr, %tgd_call(foo)
+ sethi %tldm_hi22(bar), %l1
+ add %l1, %tldm_lo10(bar), %l1
+ add %l7, %l1, %o0, %tldm_add(bar)
+ call __tls_get_addr, %tldm_call(bar)
+ sethi %tldo_hix22(bar), %l1
+ xor %l1, %tldo_lox10(bar), %l1
+ add %o0, %l1, %l1, %tldo_add(bar)
+ sethi %tie_hi22(foo), %l1
+ add %l1, %tie_lo10(foo), %l1
+#ifdef __arch64__
+ ldx [%l7 + %l1], %l1, %tie_ldx(foo)
+#else
+ ld [%l7 + %l1], %l1, %tie_ld(foo)
+#endif
+ add %g7, %l1, %l1, %tie_add(foo)
+ sethi %tle_hix22(foo), %l1
+ xor %l1, %tle_lox10(foo), %l1
+EOF
+changequote([,])dnl
+dnl
+if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.S 1>&AS_MESSAGE_LOG_FD); then
+ libc_cv_sparc_tls=yes
+else
+ libc_cv_sparc_tls=no
+fi
+rm -f conftest*])
+if test $libc_cv_sparc_tls = no; then
+ AC_MSG_ERROR([the assembler must support TLS])
+fi
+
+# Check for a GCC emitting GOTDATA relocations.
+AC_CACHE_CHECK(for sparc gcc GOTDATA reloc support, libc_cv_sparc_gcc_gotdata, [dnl
+changequote(,)dnl
+cat > conftest.c <<\EOF
+int data;
+int foo(void)
+{
+ return data;
+}
+EOF
+changequote([,])dnl
+dnl
+libc_cv_sparc_gcc_gotdata=no
+if AC_TRY_COMMAND(${CC-cc} -S $CFLAGS -O2 -fPIC conftest.c 1>&AS_MESSAGE_LOG_FD); then
+ if grep -q 'gdop_hix22' conftest.s \
+ && grep -q 'gdop_lox10' conftest.s; then
+ libc_cv_sparc_gcc_gotdata=yes
+ fi
+fi
+rm -f conftest*])
+if test $libc_cv_sparc_gcc_gotdata = yes; then
+ AC_DEFINE(HAVE_GCC_GOTDATA)
+fi
+
+if test $libc_cv_sparc_gcc_gotdata = yes; then
+ AC_DEFINE(PI_STATIC_AND_HIDDEN)
+fi
diff --git a/libc/sysdeps/sparc/elf/configure b/libc/sysdeps/sparc/elf/configure
deleted file mode 100644
index 355344417..000000000
--- a/libc/sysdeps/sparc/elf/configure
+++ /dev/null
@@ -1,177 +0,0 @@
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-# This file is generated from configure.in by Autoconf. DO NOT EDIT!
- # Local configure fragment for sysdeps/sparc/elf.
-
-# Check for support of thread-local storage handling in assembler and linker.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc TLS support" >&5
-$as_echo_n "checking for sparc TLS support... " >&6; }
-if ${libc_cv_sparc_tls+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat > conftest.S <<\EOF
- .section ".tdata", "awT", @progbits
- .globl foo
-foo: .word 1
- .section ".tbss", "awT", @nobits
- .globl bar
-bar: .skip 4
- .text
-baz: sethi %tgd_hi22(foo), %l1
- add %l1, %tgd_lo10(foo), %l1
- add %l7, %l1, %o0, %tgd_add(foo)
- call __tls_get_addr, %tgd_call(foo)
- sethi %tldm_hi22(bar), %l1
- add %l1, %tldm_lo10(bar), %l1
- add %l7, %l1, %o0, %tldm_add(bar)
- call __tls_get_addr, %tldm_call(bar)
- sethi %tldo_hix22(bar), %l1
- xor %l1, %tldo_lox10(bar), %l1
- add %o0, %l1, %l1, %tldo_add(bar)
- sethi %tie_hi22(foo), %l1
- add %l1, %tie_lo10(foo), %l1
-#ifdef __arch64__
- ldx [%l7 + %l1], %l1, %tie_ldx(foo)
-#else
- ld [%l7 + %l1], %l1, %tie_ld(foo)
-#endif
- add %g7, %l1, %l1, %tie_add(foo)
- sethi %tle_hix22(foo), %l1
- xor %l1, %tle_lox10(foo), %l1
-EOF
-if { ac_try='${CC-cc} -c $CFLAGS conftest.S 1>&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- libc_cv_sparc_tls=yes
-else
- libc_cv_sparc_tls=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc_tls" >&5
-$as_echo "$libc_cv_sparc_tls" >&6; }
-if test $libc_cv_sparc_tls = no; then
- as_fn_error $? "the assembler must support TLS" "$LINENO" 5
-fi
-
-# Check for a GCC emitting GOTDATA relocations.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc gcc GOTDATA reloc support" >&5
-$as_echo_n "checking for sparc gcc GOTDATA reloc support... " >&6; }
-if ${libc_cv_sparc_gcc_gotdata+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat > conftest.c <<\EOF
-int data;
-int foo(void)
-{
- return data;
-}
-EOF
-libc_cv_sparc_gcc_gotdata=no
-if { ac_try='${CC-cc} -S $CFLAGS -O2 -fPIC conftest.c 1>&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- if grep -q 'gdop_hix22' conftest.s \
- && grep -q 'gdop_lox10' conftest.s; then
- libc_cv_sparc_gcc_gotdata=yes
- fi
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc_gcc_gotdata" >&5
-$as_echo "$libc_cv_sparc_gcc_gotdata" >&6; }
-if test $libc_cv_sparc_gcc_gotdata = yes; then
- $as_echo "#define HAVE_GCC_GOTDATA 1" >>confdefs.h
-
-fi
-
-if test $libc_cv_sparc_gcc_gotdata = yes; then
- $as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-fi
diff --git a/libc/sysdeps/sparc/elf/configure.in b/libc/sysdeps/sparc/elf/configure.in
deleted file mode 100644
index ec683455c..000000000
--- a/libc/sysdeps/sparc/elf/configure.in
+++ /dev/null
@@ -1,75 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/sparc/elf.
-
-# Check for support of thread-local storage handling in assembler and linker.
-AC_CACHE_CHECK(for sparc TLS support, libc_cv_sparc_tls, [dnl
-changequote(,)dnl
-cat > conftest.S <<\EOF
- .section ".tdata", "awT", @progbits
- .globl foo
-foo: .word 1
- .section ".tbss", "awT", @nobits
- .globl bar
-bar: .skip 4
- .text
-baz: sethi %tgd_hi22(foo), %l1
- add %l1, %tgd_lo10(foo), %l1
- add %l7, %l1, %o0, %tgd_add(foo)
- call __tls_get_addr, %tgd_call(foo)
- sethi %tldm_hi22(bar), %l1
- add %l1, %tldm_lo10(bar), %l1
- add %l7, %l1, %o0, %tldm_add(bar)
- call __tls_get_addr, %tldm_call(bar)
- sethi %tldo_hix22(bar), %l1
- xor %l1, %tldo_lox10(bar), %l1
- add %o0, %l1, %l1, %tldo_add(bar)
- sethi %tie_hi22(foo), %l1
- add %l1, %tie_lo10(foo), %l1
-#ifdef __arch64__
- ldx [%l7 + %l1], %l1, %tie_ldx(foo)
-#else
- ld [%l7 + %l1], %l1, %tie_ld(foo)
-#endif
- add %g7, %l1, %l1, %tie_add(foo)
- sethi %tle_hix22(foo), %l1
- xor %l1, %tle_lox10(foo), %l1
-EOF
-changequote([,])dnl
-dnl
-if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.S 1>&AS_MESSAGE_LOG_FD); then
- libc_cv_sparc_tls=yes
-else
- libc_cv_sparc_tls=no
-fi
-rm -f conftest*])
-if test $libc_cv_sparc_tls = no; then
- AC_MSG_ERROR([the assembler must support TLS])
-fi
-
-# Check for a GCC emitting GOTDATA relocations.
-AC_CACHE_CHECK(for sparc gcc GOTDATA reloc support, libc_cv_sparc_gcc_gotdata, [dnl
-changequote(,)dnl
-cat > conftest.c <<\EOF
-int data;
-int foo(void)
-{
- return data;
-}
-EOF
-changequote([,])dnl
-dnl
-libc_cv_sparc_gcc_gotdata=no
-if AC_TRY_COMMAND(${CC-cc} -S $CFLAGS -O2 -fPIC conftest.c 1>&AS_MESSAGE_LOG_FD); then
- if grep -q 'gdop_hix22' conftest.s \
- && grep -q 'gdop_lox10' conftest.s; then
- libc_cv_sparc_gcc_gotdata=yes
- fi
-fi
-rm -f conftest*])
-if test $libc_cv_sparc_gcc_gotdata = yes; then
- AC_DEFINE(HAVE_GCC_GOTDATA)
-fi
-
-if test $libc_cv_sparc_gcc_gotdata = yes; then
- AC_DEFINE(PI_STATIC_AND_HIDDEN)
-fi
diff --git a/libc/sysdeps/sparc/fpu/libm-test-ulps b/libc/sysdeps/sparc/fpu/libm-test-ulps
index c07a26a4d..60a53aa43 100644
--- a/libc/sysdeps/sparc/fpu/libm-test-ulps
+++ b/libc/sysdeps/sparc/fpu/libm-test-ulps
@@ -525,6 +525,9 @@ float: 1
ifloat: 1
# cexp
+Test "Imaginary part of: cexp (-10000 + 0x1p16383 i) == 1.045876464564882298442774542991176546722e-4343 + 4.421154026488516836023811173959413420548e-4344 i":
+ildouble: 1
+ldouble: 1
Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
ildouble: 1
ldouble: 1
@@ -533,12 +536,55 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cexp (-720 + 0.75 i) == 1.486960657116368433685753325516638551722e-313 + 1.385247284245720590980701226843815229385e-313 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+double: 1
+idouble: 1
Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
float: 1
ifloat: 1
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 plus overflow exception":
+double: 1
+idouble: 1
+Test "Imaginary part of: cexp (22730 + 0x1p-16434 i) == inf + 2.435706297811211974162115164702304105374e4924 i plus overflow exception":
+ildouble: 1
+ldouble: 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
+Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+double: 1
+idouble: 1
+Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
# clog
Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
@@ -685,8 +731,6 @@ ifloat: 1
Test "cos (M_PI_6l * 2.0) == 0.5":
double: 1
idouble: 1
-ildouble: 1
-ldouble: 1
Test "cos (M_PI_6l * 4.0) == -0.5":
double: 2
float: 1
@@ -699,8 +743,6 @@ ldouble: 1
Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
ildouble: 1
ldouble: 1
@@ -717,8 +759,6 @@ ldouble: 1
Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
float: 1
ifloat: 1
@@ -744,9 +784,6 @@ 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
@@ -760,9 +797,6 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241":
-ildouble: 1
-ldouble: 1
Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
float: 1
ifloat: 1
@@ -783,9 +817,15 @@ ildouble: 2
ldouble: 2
# cos_upward
+Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
+ildouble: 1
+ldouble: 1
Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
float: 1
ifloat: 1
+Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
+ildouble: 1
+ldouble: 1
Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
float: 1
ifloat: 1
@@ -863,9 +903,6 @@ ifloat: 4
ildouble: 4
ldouble: 4
Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
ildouble: 1
ldouble: 1
Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
@@ -873,8 +910,8 @@ double: 2
float: 3
idouble: 2
ifloat: 3
-ildouble: 10
-ldouble: 10
+ildouble: 11
+ldouble: 11
Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
ildouble: 2
ldouble: 2
@@ -883,8 +920,8 @@ double: 1
float: 4
idouble: 1
ifloat: 4
-ildouble: 3
-ldouble: 3
+ildouble: 2
+ldouble: 2
Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
float: 2
ifloat: 2
@@ -991,6 +1028,11 @@ ifloat: 1
Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+ildouble: 1
+ldouble: 1
# erf
Test "erf (1.25) == 0.922900128256458230136523481197281140":
@@ -1039,9 +1081,9 @@ ildouble: 1
ldouble: 1
# exp2
-Test "exp2 (10) == 1024":
-ildouble: 2
-ldouble: 2
+Test "exp2 (100.5) == 1.792728671193156477399422023278661496394e+30":
+ildouble: 1
+ldouble: 1
# exp_downward
Test "exp_downward (2) == e^2":
@@ -1412,15 +1454,7 @@ ifloat: 1
ildouble: 1
ldouble: 1
-# sin
-Test "sin (0x1p1023) == 0.5631277798508840134529434079444683477104":
-ildouble: 1
-ldouble: 1
-
# sin_downward
-Test "sin_downward (1) == 0.8414709848078965066525023216302989996226":
-ildouble: 1
-ldouble: 1
Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
float: 1
ifloat: 1
@@ -1443,9 +1477,10 @@ ldouble: 1
Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
float: 1
ifloat: 1
+Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
ildouble: 1
ldouble: 1
-Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_downward (9) == 0.4121184852417565697562725663524351793439":
ildouble: 1
ldouble: 1
@@ -1453,17 +1488,9 @@ ldouble: 1
Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
Test "sin_tonearest (3) == 0.1411200080598672221007448028081102798469":
ildouble: 1
ldouble: 1
-Test "sin_tonearest (6) == -0.2794154981989258728115554466118947596280":
-ildouble: 1
-ldouble: 1
-Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439":
-ildouble: 1
-ldouble: 1
# sin_towardzero
Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
@@ -1481,22 +1508,21 @@ ldouble: 1
Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
float: 1
ifloat: 1
+ildouble: 1
+ldouble: 1
Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280":
-ildouble: 1
-ldouble: 1
Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
ildouble: 1
ldouble: 1
Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
float: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
# sin_upward
Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
@@ -1516,6 +1542,7 @@ ldouble: 1
Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
float: 1
ifloat: 1
+Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
ildouble: 1
ldouble: 1
Test "sin_upward (7) == 0.6569865987187890903969990915936351779369":
@@ -1524,25 +1551,16 @@ ldouble: 1
Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
# sincos
-Test "sincos (0x1p1023, &sin_res, &cos_res) puts 0.5631277798508840134529434079444683477104 in sin_res":
-ildouble: 1
-ldouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
double: 1
idouble: 1
-ildouble: 1
-ldouble: 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
-ildouble: 1
-ldouble: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
float: 1
ifloat: 1
@@ -2014,14 +2032,18 @@ ildouble: 1
ldouble: 1
Function: Real part of "cexp":
+double: 2
float: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
Function: Imaginary part of "cexp":
-float: 1
-ifloat: 1
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
ildouble: 1
ldouble: 1
@@ -2104,8 +2126,8 @@ double: 2
float: 4
idouble: 2
ifloat: 4
-ildouble: 10
-ldouble: 10
+ildouble: 11
+ldouble: 11
Function: Imaginary part of "cpow":
double: 2
@@ -2196,8 +2218,8 @@ ildouble: 1
ldouble: 1
Function: "exp2":
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
Function: "exp_downward":
float: 1
@@ -2297,10 +2319,6 @@ ifloat: 1
ildouble: 1
ldouble: 1
-Function: "sin":
-ildouble: 1
-ldouble: 1
-
Function: "sin_downward":
float: 1
ifloat: 1
@@ -2316,8 +2334,8 @@ ldouble: 1
Function: "sin_towardzero":
float: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
Function: "sin_upward":
float: 2
diff --git a/libc/sysdeps/sparc/sparc32/Makefile b/libc/sysdeps/sparc/sparc32/Makefile
index fb1adafcd..fb7132ee9 100644
--- a/libc/sysdeps/sparc/sparc32/Makefile
+++ b/libc/sysdeps/sparc/sparc32/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-1998, 2000, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1991-1998, 2000, 2011, 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
diff --git a/libc/sysdeps/sparc/sparc32/elf/Makefile b/libc/sysdeps/sparc/sparc32/elf/Makefile
deleted file mode 100644
index a995e6cdf..000000000
--- a/libc/sysdeps/sparc/sparc32/elf/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# Sparc/ELF specific definitions.
-
-# The assembler on SPARC needs the -fPIC flag even when it's assembler code.
-ASFLAGS-.os = -fPIC
diff --git a/libc/sysdeps/sparc/sparc32/elf/start.S b/libc/sysdeps/sparc/sparc32/start.S
index 1efa8e839..1efa8e839 100644
--- a/libc/sysdeps/sparc/sparc32/elf/start.S
+++ b/libc/sysdeps/sparc/sparc32/start.S
diff --git a/libc/sysdeps/sparc/sparc64/elf/Makefile b/libc/sysdeps/sparc/sparc64/elf/Makefile
deleted file mode 100644
index a995e6cdf..000000000
--- a/libc/sysdeps/sparc/sparc64/elf/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# Sparc/ELF specific definitions.
-
-# The assembler on SPARC needs the -fPIC flag even when it's assembler code.
-ASFLAGS-.os = -fPIC
diff --git a/libc/sysdeps/sparc/sparc64/elf/start.S b/libc/sysdeps/sparc/sparc64/start.S
index 7924fb482..7924fb482 100644
--- a/libc/sysdeps/sparc/sparc64/elf/start.S
+++ b/libc/sysdeps/sparc/sparc64/start.S