diff --git a/common/lib/libc/string/popcount64.c b/common/lib/libc/string/popcount64.c index ffc0e37982fe..6971c05826f4 100644 --- a/common/lib/libc/string/popcount64.c +++ b/common/lib/libc/string/popcount64.c @@ -1,4 +1,4 @@ -/* $NetBSD: popcount64.c,v 1.1 2009/07/21 14:55:32 joerg Exp $ */ +/* $NetBSD: popcount64.c,v 1.2 2009/07/21 16:10:48 joerg Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. * All rights reserved. @@ -32,7 +32,7 @@ */ #include -__RCSID("$NetBSD: popcount64.c,v 1.1 2009/07/21 14:55:32 joerg Exp $"); +__RCSID("$NetBSD: popcount64.c,v 1.2 2009/07/21 16:10:48 joerg Exp $"); #if !defined(_KERNEL) && !defined(_STANDALONE) #include @@ -54,7 +54,8 @@ __RCSID("$NetBSD: popcount64.c,v 1.1 2009/07/21 14:55:32 joerg Exp $"); unsigned int popcount64(uint64_t v) { - return popcount32(v >> 32) + popcount32(v & 0xffffffffU); + return popcount32((uint32_t)(v >> 32)) + + popcount32((uint32_t)(v & 0xffffffffU)); } #else unsigned int