alpha: Always handle inexact in rint implementations
authorRichard Henderson <rth@twiddle.net>
Fri, 15 Jun 2012 19:17:48 +0000 (12:17 -0700)
committerRichard Henderson <rth@twiddle.net>
Fri, 15 Jun 2012 19:17:48 +0000 (12:17 -0700)
ChangeLog.alpha
sysdeps/alpha/fpu/s_rint.c
sysdeps/alpha/fpu/s_rintf.c

index 824083c..5ec3634 100644 (file)
@@ -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.
index b58ef81..6ddcc13 100644 (file)
@@ -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));
index b17bf8c..226e77e 100644 (file)
@@ -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));