mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 15:20:10 +00:00
alpha: Always handle inexact in rint implementations
This commit is contained in:
parent
f56ed78d4a
commit
7fd8e5a4e4
@ -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.
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user