aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2012-06-15 12:17:48 -0700
committerRichard Henderson <rth@twiddle.net>2012-06-15 12:17:48 -0700
commit7fd8e5a4e43032533a724efa1a8e9488bcbcf040 (patch)
tree1b8fe1524010615b5a442a7def7de617aad11570
parentf56ed78d4ad3fa029df5db1110aee06f1e26f199 (diff)
downloadglibc-7fd8e5a4e43032533a724efa1a8e9488bcbcf040.zip
glibc-7fd8e5a4e43032533a724efa1a8e9488bcbcf040.tar.gz
glibc-7fd8e5a4e43032533a724efa1a8e9488bcbcf040.tar.bz2
alpha: Always handle inexact in rint implementations
-rw-r--r--ChangeLog.alpha30
-rw-r--r--sysdeps/alpha/fpu/s_rint.c9
-rw-r--r--sysdeps/alpha/fpu/s_rintf.c6
3 files changed, 33 insertions, 12 deletions
diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 824083c..5ec3634 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,3 +1,33 @@
+2012-06-15 Richard Henderson <rth@twiddle.net>
+
+ * sysdeps/alpha/fpu/s_rint.c (__rint): Handle inexact regardless
+ of -mieee-with-inexact.
+ * sysdeps/alpha/fpu/s_rintf.c (__rintf): Likewise.
+
+ [BZ #13848]
+ * sysdeps/alpha/fpu/s_nearbyint.c (__nearbyint): Fix corner cases
+ similar to BZ#5350.
+ * sysdeps/alpha/fpu/s_nearbyintf.c (__nearbyintf): Likewise.
+
+ * sysdeps/alpha/fpu/s_copysign.c (__copysign): Use builtin.
+ * sysdeps/alpha/fpu/s_copysignf.c (__copysignf): Use builtin.
+
+ * sysdeps/unix/sysv/linux/alpha/bits/resource.h (RLIMIT_RTTIME): New.
+ (prlimit, prlimit64): New declarations.
+ * sysdeps/unix/sysv/linux/alpha/bits/shm.h (SHM_EXEC): New.
+ * sysdeps/unix/sysv/linux/alpha/bits/stat.h: Use only __USE_ATFILE
+ to protect UTIME_NOW and UTIME_OMIT.
+
+ * sysdeps/alpha/fpu/cfloat-compat.h: Remove __GNUC_PREREQ check.
+ * sysdeps/alpha/fpu/s_fabs.c (__fabs): Likewise.
+ * sysdeps/alpha/fpu/s_fabsf.c (__fabsf): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/sysconf.c (implver): Remove.
+ (amask): Remove.
+ (__sysconf): Use builtins directly.
+
+ * sysdeps/alpha/bits/mathdef.h (float_t): Define as float
+ regardless of __GNUC__.
+
2012-06-06 Richard Henderson <rth@twiddle.net>
* sysdeps/alpha/strncmp.S: Bound count to LONG_MAX at startup.
diff --git a/sysdeps/alpha/fpu/s_rint.c b/sysdeps/alpha/fpu/s_rint.c
index b58ef81..6ddcc13 100644
--- a/sysdeps/alpha/fpu/s_rint.c
+++ b/sysdeps/alpha/fpu/s_rint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson.
@@ -26,12 +26,7 @@ __rint (double x)
if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */
{
double tmp1, new_x;
- __asm (
-#ifdef _IEEE_FP_INEXACT
- "cvttq/svid %2,%1\n\t"
-#else
- "cvttq/svd %2,%1\n\t"
-#endif
+ __asm ("cvttq/svid %2,%1\n\t"
"cvtqt/d %1,%0\n\t"
: "=f"(new_x), "=&f"(tmp1)
: "f"(x));
diff --git a/sysdeps/alpha/fpu/s_rintf.c b/sysdeps/alpha/fpu/s_rintf.c
index b17bf8c..226e77e 100644
--- a/sysdeps/alpha/fpu/s_rintf.c
+++ b/sysdeps/alpha/fpu/s_rintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson.
@@ -32,11 +32,7 @@ __rintf (float x)
float tmp1, tmp2, new_x;
__asm ("cvtst/s %3,%2\n\t"
-#ifdef _IEEE_FP_INEXACT
"cvttq/svid %2,%1\n\t"
-#else
- "cvttq/svd %2,%1\n\t"
-#endif
"cvtqt/d %1,%0\n\t"
: "=f"(new_x), "=&f"(tmp1), "=&f"(tmp2)
: "f"(x));