From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/12740 Path: news.gmane.org!.POSTED!not-for-mail From: Andre McCurdy Newsgroups: gmane.linux.lib.musl.general Subject: [PATCH 2/2] provide a_ctz_32 helper Date: Wed, 18 Apr 2018 17:41:00 -0700 Message-ID: <1524098460-8072-3-git-send-email-armccurdy@gmail.com> References: <1524098460-8072-1-git-send-email-armccurdy@gmail.com> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1524098371 12745 195.159.176.226 (19 Apr 2018 00:39:31 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 19 Apr 2018 00:39:31 +0000 (UTC) Cc: Andre McCurdy To: musl@lists.openwall.com Original-X-From: musl-return-12756-gllmg-musl=m.gmane.org@lists.openwall.com Thu Apr 19 02:39:27 2018 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1f8xbj-0003Ev-8k for gllmg-musl@m.gmane.org; Thu, 19 Apr 2018 02:39:27 +0200 Original-Received: (qmail 25850 invoked by uid 550); 19 Apr 2018 00:41:33 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 25773 invoked from network); 19 Apr 2018 00:41:32 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1FFKstxLsHOJiJrwBl3AaknMOK3eRaEXcjei+SoL32U=; b=A+jdFQEM2yFe/0HNf036j8+acO1XpvhfKFB51Wm8zQsIy67GlS5v4rfvOEjClyMo+b dxqwzRrgiPIqvIFY5W/f2kYUaWWPB0cSf35DAAY4ghPxXasc/6FYreRnxoZQSLF3ehg9 pAVsw15jCjYxslBdxcdkp/Axy0SWpfl83mmvRtlQIilRXduiCbewuDx/WdLb/u2Afe4R Zuodv6KEvLHzTfmgoy03GXBaP/1dhm8wBW+tdzhOnEoXPzCfXbUFu8VQfNXFfv/aU31r K4o1PzBYiBxXVKmnv835ld7TwIKHUXOQOuFN2OT1395GMXBtNQIJYbyO4cLii5mUJmzH geCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=1FFKstxLsHOJiJrwBl3AaknMOK3eRaEXcjei+SoL32U=; b=W+XV8++jbU54wl6/J9bdrNDqtg4xQBOkPhIC35rsEwHORFkHgJ5SskWt5zdB+56wix 2wfm+NMLwRAcPVQDk4ZAZLVXiHGfKuHPxnfd9vdAbIuucq35ZmP7slh3zvXMlX+EQuPU 9+Pja4yMgHhcRepf0l35Vr8iQ8o2/J9AJU0DQM/C5CwT5tcXB59ms2vor8PDiOgZtTsV ere4D5CXYoEtqzyEeNGElXndEsoYUpYUohna9430HSXpq7XTQM5jjFMGgTWKM1vQADo0 G6X0taQRiQnJiDDh1AzHMEsXvYJuDbh3ccv0gLiXbGs8kwXU3eChXNFf5/5xeVg9LxQ9 scFQ== X-Gm-Message-State: ALQs6tDKHthsOL7Iex0wAuNWPOd3jAMIUmMy+jIimsoCSvrh5O9S8U1Q a+z5u7xKHwKj24+cNfiRp/t0pQ== X-Google-Smtp-Source: AIpwx48vjXz3aPNUu2EWessRIvUTAVJkbWyKNrrvj54Zjd9f9EmexRw7RoGRu3ogaPvhYzp12YyaNQ== X-Received: by 10.99.100.6 with SMTP id y6mr3374012pgb.205.1524098480537; Wed, 18 Apr 2018 17:41:20 -0700 (PDT) X-Mailer: git-send-email 1.9.1 In-Reply-To: <1524098460-8072-1-git-send-email-armccurdy@gmail.com> Xref: news.gmane.org gmane.linux.lib.musl.general:12740 Archived-At: Provide an ARM specific a_ctz_32 helper function for architecture versions for which it can be implemented efficiently via the "rbit" instruction (ie all Thumb-2 capable versions of ARM v6 and above). --- arch/arm/atomic_arch.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/atomic_arch.h b/arch/arm/atomic_arch.h index c5c56f8..72fcddb 100644 --- a/arch/arm/atomic_arch.h +++ b/arch/arm/atomic_arch.h @@ -91,4 +91,16 @@ static inline int a_clz_32(uint32_t x) return x; } +#if __ARM_ARCH_6T2__ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH >= 7 + +#define a_ctz_32 a_ctz_32 +static inline int a_ctz_32(uint32_t x) +{ + uint32_t xr; + __asm__ ("rbit %0, %1" : "=r"(xr) : "r"(x)); + return a_clz_32(xr); +} + +#endif + #endif -- 1.9.1