From patchwork Thu Jul 3 18:00:46 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 1909 Received: (qmail 13621 invoked by alias); 3 Jul 2014 18:01:54 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 13075 invoked by uid 89); 3 Jul 2014 18:01:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.0 required=5.0 tests=AWL, BAYES_50, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-qc0-f169.google.com X-Received: by 10.140.104.161 with SMTP id a30mr9705373qgf.19.1404410462679; Thu, 03 Jul 2014 11:01:02 -0700 (PDT) From: Richard Henderson To: libc-alpha@sourceware.org Subject: [COMMITTED 4/4] alpha: Remove nearbyint and nearbyintf implementations Date: Thu, 3 Jul 2014 11:00:46 -0700 Message-Id: <1404410446-30243-4-git-send-email-rth@twiddle.net> In-Reply-To: <1404410446-30243-1-git-send-email-rth@twiddle.net> References: <1404410446-30243-1-git-send-email-rth@twiddle.net> The original implementation was written for EV5, which does not record inexact in the status register for /SU (but no /I) insns. But EV6 does record the inexact status; the lack of /I simply means that the exception is suppressed. Adding feholdexcept becomes the bulk of the overhead, so we might as well use the default implementation. --- * sysdeps/alpha/fpu/s_nearbyintf.c: Remove file. * sysdeps/alpha/fpu/s_nearbyint.c (__nearbyint): Remove; include sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c. --- ChangeLog | 4 ++++ sysdeps/alpha/fpu/s_nearbyint.c | 27 +---------------------- sysdeps/alpha/fpu/s_nearbyintf.c | 46 ---------------------------------------- 3 files changed, 5 insertions(+), 72 deletions(-) delete mode 100644 sysdeps/alpha/fpu/s_nearbyintf.c diff --git a/sysdeps/alpha/fpu/s_nearbyint.c b/sysdeps/alpha/fpu/s_nearbyint.c index ed6c997..dc13910 100644 --- a/sysdeps/alpha/fpu/s_nearbyint.c +++ b/sysdeps/alpha/fpu/s_nearbyint.c @@ -16,33 +16,8 @@ License along with the GNU C Library. If not, see . */ -#include -#include +#include - -double -__nearbyint (double x) -{ - if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */ - { - double tmp1, new_x; - __asm ("cvttq/svd %2,%1\n\t" - "cvtqt/d %1,%0\n\t" - : "=f"(new_x), "=&f"(tmp1) - : "f"(x)); - - /* nearbyint(-0.1) == -0, and in general we'll always have the same - sign as our input. */ - x = copysign(new_x, x); - } - return x; -} - -weak_alias (__nearbyint, nearbyint) -#ifdef NO_LONG_DOUBLE -strong_alias (__nearbyint, __nearbyintl) -weak_alias (__nearbyint, nearbyintl) -#endif #if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1); #endif