From d68f2c0a9f908719cf2043d1f3bd75473daf0284 Mon Sep 17 00:00:00 2001 From: David Daney Date: Fri, 25 Jun 2010 16:46:07 -0700 Subject: [PATCH] --- yaml --- r: 204537 b: refs/heads/master c: 1a403d1d2e549bc7d280001503867321572717f6 h: refs/heads/master i: 204535: 73596c00d840241e219b6be2e7b277bfc50ca0c7 v: v3 --- [refs] | 2 +- trunk/arch/mips/include/asm/arch_hweight.h | 38 ++++++++++++++++++++++ trunk/arch/mips/include/asm/bitops.h | 5 ++- 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 trunk/arch/mips/include/asm/arch_hweight.h diff --git a/[refs] b/[refs] index 73458ee54c49..ae63f1c1132a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d16f7093b6eb4f3859856f6ee4ab504cbeeea0b9 +refs/heads/master: 1a403d1d2e549bc7d280001503867321572717f6 diff --git a/trunk/arch/mips/include/asm/arch_hweight.h b/trunk/arch/mips/include/asm/arch_hweight.h new file mode 100644 index 000000000000..712a7445ee93 --- /dev/null +++ b/trunk/arch/mips/include/asm/arch_hweight.h @@ -0,0 +1,38 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + */ +#ifndef _ASM_ARCH_HWEIGHT_H +#define _ASM_ARCH_HWEIGHT_H + +#ifdef ARCH_HAS_USABLE_BUILTIN_POPCOUNT + +#include + +static inline unsigned int __arch_hweight32(unsigned int w) +{ + return __builtin_popcount(w); +} + +static inline unsigned int __arch_hweight16(unsigned int w) +{ + return __builtin_popcount(w & 0xffff); +} + +static inline unsigned int __arch_hweight8(unsigned int w) +{ + return __builtin_popcount(w & 0xff); +} + +static inline unsigned long __arch_hweight64(__u64 w) +{ + return __builtin_popcountll(w); +} + +#else +#include +#endif + +#endif /* _ASM_ARCH_HWEIGHT_H */ diff --git a/trunk/arch/mips/include/asm/bitops.h b/trunk/arch/mips/include/asm/bitops.h index 9255cfbee459..b0ce7ca2851f 100644 --- a/trunk/arch/mips/include/asm/bitops.h +++ b/trunk/arch/mips/include/asm/bitops.h @@ -700,7 +700,10 @@ static inline int ffs(int word) #ifdef __KERNEL__ #include -#include + +#include +#include + #include #include #include