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: 366945 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id E78BB140147 for ; Fri, 4 Jul 2014 04:02:51 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; q=dns; s=default; b=BMoVCe9Iu4+wAFCdstZ5a3GAgJWXY0y iHHmDR4rTgb/iYDwtLoPmpAznS0QEWlntzv4N32B4L7gMhjCD99tKLVguB5ZZQVW BJo50RJo3Lhu6vY8O444H+hbW2aAn7QJcced9q+zzg+2KalQt55HmZVN1bmDw5vh DYvmThlYaWeY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; s=default; bh=YPvt8dg8knp6LBThW901JjL9byI=; b=mP3B9 FJwy1f6uv0x53s84oXraSKY3nyYghAV8JgTIGURD6VTeDhMlfOFY1CUAQs9TFcnp p/8ZJDoCmvZiBRQySiFJuGz3EPWwSsMbC+rPbPYNb6GrvuKhy47jvk1NqwwZfYtF Pav7cSZQei9YP62/Nw/fqRMl4SNCTINuZ7N+6o= 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