--- bitops.h 2003-06-04 20:06:07.000000000 -0400 +++ linux-2.5.70/include/linux/bitops.h 2003-06-04 20:03:56.000000000 -0400 @@ -115,12 +115,12 @@ return generic_hweight32((unsigned int)(w >> 32)) + generic_hweight32((unsigned int)w); - res = (w & 0x5555555555555555) + ((w >> 1) & 0x5555555555555555); - res = (res & 0x3333333333333333) + ((res >> 2) & 0x3333333333333333); - res = (res & 0x0F0F0F0F0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F0F0F0F0F); - res = (res & 0x00FF00FF00FF00FF) + ((res >> 8) & 0x00FF00FF00FF00FF); - res = (res & 0x0000FFFF0000FFFF) + ((res >> 16) & 0x0000FFFF0000FFFF); - return (res & 0x00000000FFFFFFFF) + ((res >> 32) & 0x00000000FFFFFFFF); + res = (w & 0x5555555555555555ULL) + ((w >> 1) & 0x5555555555555555ULL); + res = (res & 0x3333333333333333ULL) + ((res >> 2) & 0x3333333333333333ULL); + res = (res & 0x0F0F0F0F0F0F0F0FULL) + ((res >> 4) & 0x0F0F0F0F0F0F0F0FULL); + res = (res & 0x00FF00FF00FF00FFULL) + ((res >> 8) & 0x00FF00FF00FF00FFULL); + res = (res & 0x0000FFFF0000FFFFULL) + ((res >> 16) & 0x0000FFFF0000FFFFULL); + return (res & 0x00000000FFFFFFFFULL) + ((res >> 32) & 0x00000000FFFFFFFFULL); } static inline unsigned long hweight_long(unsigned long w)