root/arch/mips/include/asm/arch_hweight.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. __arch_hweight32
  2. __arch_hweight16
  3. __arch_hweight8
  4. __arch_hweight64

   1 /*
   2  * This file is subject to the terms and conditions of the GNU General Public
   3  * License.  See the file "COPYING" in the main directory of this archive
   4  * for more details.
   5  *
   6  */
   7 #ifndef _ASM_ARCH_HWEIGHT_H
   8 #define _ASM_ARCH_HWEIGHT_H
   9 
  10 #ifdef ARCH_HAS_USABLE_BUILTIN_POPCOUNT
  11 
  12 #include <asm/types.h>
  13 
  14 static inline unsigned int __arch_hweight32(unsigned int w)
  15 {
  16         return __builtin_popcount(w);
  17 }
  18 
  19 static inline unsigned int __arch_hweight16(unsigned int w)
  20 {
  21         return __builtin_popcount(w & 0xffff);
  22 }
  23 
  24 static inline unsigned int __arch_hweight8(unsigned int w)
  25 {
  26         return __builtin_popcount(w & 0xff);
  27 }
  28 
  29 static inline unsigned long __arch_hweight64(__u64 w)
  30 {
  31         return __builtin_popcountll(w);
  32 }
  33 
  34 #else
  35 #include <asm-generic/bitops/arch_hweight.h>
  36 #endif
  37 
  38 #endif /* _ASM_ARCH_HWEIGHT_H */

/* [<][>][^][v][top][bottom][index][help] */