From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752602AbcDNDGP (ORCPT ); Wed, 13 Apr 2016 23:06:15 -0400 Received: from m50-138.163.com ([123.125.50.138]:35958 "EHLO m50-138.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752248AbcDNDGI (ORCPT ); Wed, 13 Apr 2016 23:06:08 -0400 From: zengzhaoxiu@163.com To: linux-kernel@vger.kernel.org Cc: Zhaoxiu Zeng , Richard Henderson , Ivan Kokshaysky , Matt Turner , linux-alpha@vger.kernel.org Subject: [PATCH V3 03/29] Add alpha-specific parity functions Date: Thu, 14 Apr 2016 11:05:23 +0800 Message-Id: <1460603124-4529-1-git-send-email-zengzhaoxiu@163.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1460601525-3822-1-git-send-email-zengzhaoxiu@163.com> References: <1460601525-3822-1-git-send-email-zengzhaoxiu@163.com> X-CM-TRANSID: C9GowAD3_7P2CA9XCY7WAg--.53050S2 X-Coremail-Antispam: 1Uf129KBjvJXoW7WF48Zw18ur4DWw4kJw4ruFg_yoW8Gr4kpF 1kAwn5JrW8K347ZFW3Crn2yF4fXrs3Wr17JrWa93s7AF17JF4UtrySgryDZry8KF4v9ayY yrZxJFykGwsrXaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07bU18PUUUUU= X-Originating-IP: [112.95.225.98] X-CM-SenderInfo: p2hqw6xkdr5xrx6rljoofrz/1tbiGRlLgFXlSLuutgAAsQ Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Zhaoxiu Zeng Signed-off-by: Zhaoxiu Zeng --- arch/alpha/include/asm/bitops.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/arch/alpha/include/asm/bitops.h b/arch/alpha/include/asm/bitops.h index 4bdfbd4..95a43fa 100644 --- a/arch/alpha/include/asm/bitops.h +++ b/arch/alpha/include/asm/bitops.h @@ -421,11 +421,38 @@ static inline unsigned int __arch_hweight8(unsigned int w) { return __arch_hweight64(w & 0xff); } + +static inline unsigned int __arch_parity64(unsigned long w) +{ + return (unsigned int)__kernel_ctpop(w) & 1; +} + +static inline unsigned int __arch_parity32(unsigned int w) +{ + return __arch_parity64(w); +} + +static inline unsigned int __arch_parity16(unsigned int w) +{ + return __arch_parity64(w & 0xffff); +} + +static inline unsigned int __arch_parity8(unsigned int w) +{ + return __arch_parity64(w & 0xff); +} + +static inline unsigned int __arch_parity4(unsigned int w) +{ + return __arch_parity64(w & 0xf); +} #else #include +#include #endif #include +#include #endif /* __KERNEL__ */ -- 2.5.0