Tue Jul 21 19:56:56 2009 UTC ()
remove stray semicolons, makes lint happy and lets the libc build proceed


(drochner)
diff -r1.2 -r1.3 src/common/lib/libc/string/popcount32.c
diff -r1.3 -r1.4 src/common/lib/libc/string/popcount64.c

cvs diff -r1.2 -r1.3 src/common/lib/libc/string/popcount32.c (switch to unified diff)

--- src/common/lib/libc/string/popcount32.c 2009/07/21 17:37:51 1.2
+++ src/common/lib/libc/string/popcount32.c 2009/07/21 19:56:55 1.3
@@ -1,77 +1,77 @@ @@ -1,77 +1,77 @@
1/* $NetBSD: popcount32.c,v 1.2 2009/07/21 17:37:51 joerg Exp $ */ 1/* $NetBSD: popcount32.c,v 1.3 2009/07/21 19:56:55 drochner Exp $ */
2/*- 2/*-
3 * Copyright (c) 2009 The NetBSD Foundation, Inc. 3 * Copyright (c) 2009 The NetBSD Foundation, Inc.
4 * All rights reserved. 4 * All rights reserved.
5 * 5 *
6 * This code is derived from software contributed to The NetBSD Foundation 6 * This code is derived from software contributed to The NetBSD Foundation
7 * by Joerg Sonnenberger. 7 * by Joerg Sonnenberger.
8 * 8 *
9 * Redistribution and use in source and binary forms, with or without 9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions 10 * modification, are permitted provided that the following conditions
11 * are met: 11 * are met:
12 * 12 *
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright 15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in 16 * notice, this list of conditions and the following disclaimer in
17 * the documentation and/or other materials provided with the 17 * the documentation and/or other materials provided with the
18 * distribution. 18 * distribution.
19 * 19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 24 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25 * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 25 * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
26 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 26 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE. 31 * SUCH DAMAGE.
32 */ 32 */
33 33
34#include <sys/cdefs.h> 34#include <sys/cdefs.h>
35__RCSID("$NetBSD: popcount32.c,v 1.2 2009/07/21 17:37:51 joerg Exp $"); 35__RCSID("$NetBSD: popcount32.c,v 1.3 2009/07/21 19:56:55 drochner Exp $");
36 36
37#if !defined(_KERNEL) && !defined(_STANDALONE) 37#if !defined(_KERNEL) && !defined(_STANDALONE)
38#include <limits.h> 38#include <limits.h>
39#include <strings.h> 39#include <strings.h>
40#else 40#else
41#include <lib/libkern/libkern.h> 41#include <lib/libkern/libkern.h>
42#include <machine/limits.h> 42#include <machine/limits.h>
43#endif 43#endif
44 44
45/* 45/*
46 * This a hybrid algorithm for bit counting between parallel counting and 46 * This a hybrid algorithm for bit counting between parallel counting and
47 * using multiplication. The idea is to sum up the bits in each Byte, so 47 * using multiplication. The idea is to sum up the bits in each Byte, so
48 * that the final accumulation can be done with a single multiplication. 48 * that the final accumulation can be done with a single multiplication.
49 * If the platform has a slow multiplication instruction, it can be replaced 49 * If the platform has a slow multiplication instruction, it can be replaced
50 * by the commented out version below. 50 * by the commented out version below.
51 */ 51 */
52 52
53unsigned int 53unsigned int
54popcount32(uint32_t v) 54popcount32(uint32_t v)
55{ 55{
56 unsigned int c; 56 unsigned int c;
57 57
58 v = v - ((v >> 1) & 0x55555555U); 58 v = v - ((v >> 1) & 0x55555555U);
59 v = (v & 0x33333333U) + ((v >> 2) & 0x33333333U); 59 v = (v & 0x33333333U) + ((v >> 2) & 0x33333333U);
60 v = (v + (v >> 4)) & 0x0f0f0f0fU; 60 v = (v + (v >> 4)) & 0x0f0f0f0fU;
61 c = (v * 0x01010101U) >> 24; 61 c = (v * 0x01010101U) >> 24;
62 /* 62 /*
63 * v = (v >> 16) + v; 63 * v = (v >> 16) + v;
64 * v = (v >> 8) + v; 64 * v = (v >> 8) + v;
65 * c = v & 255; 65 * c = v & 255;
66 */ 66 */
67 67
68 return c; 68 return c;
69} 69}
70 70
71#if UINT_MAX == 0xffffffffU 71#if UINT_MAX == 0xffffffffU
72__strong_alias(popcount, popcount32); 72__strong_alias(popcount, popcount32)
73#endif 73#endif
74 74
75#if ULONG_MAX == 0xffffffffU 75#if ULONG_MAX == 0xffffffffU
76__strong_alias(popcountl, popcount32); 76__strong_alias(popcountl, popcount32)
77#endif 77#endif

cvs diff -r1.3 -r1.4 src/common/lib/libc/string/popcount64.c (switch to unified diff)

--- src/common/lib/libc/string/popcount64.c 2009/07/21 17:14:12 1.3
+++ src/common/lib/libc/string/popcount64.c 2009/07/21 19:56:55 1.4
@@ -1,82 +1,82 @@ @@ -1,82 +1,82 @@
1/* $NetBSD: popcount64.c,v 1.3 2009/07/21 17:14:12 joerg Exp $ */ 1/* $NetBSD: popcount64.c,v 1.4 2009/07/21 19:56:55 drochner Exp $ */
2/*- 2/*-
3 * Copyright (c) 2009 The NetBSD Foundation, Inc. 3 * Copyright (c) 2009 The NetBSD Foundation, Inc.
4 * All rights reserved. 4 * All rights reserved.
5 * 5 *
6 * This code is derived from software contributed to The NetBSD Foundation 6 * This code is derived from software contributed to The NetBSD Foundation
7 * by Joerg Sonnenberger. 7 * by Joerg Sonnenberger.
8 * 8 *
9 * Redistribution and use in source and binary forms, with or without 9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions 10 * modification, are permitted provided that the following conditions
11 * are met: 11 * are met:
12 * 12 *
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright 15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in 16 * notice, this list of conditions and the following disclaimer in
17 * the documentation and/or other materials provided with the 17 * the documentation and/or other materials provided with the
18 * distribution. 18 * distribution.
19 * 19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 24 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25 * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 25 * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
26 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 26 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE. 31 * SUCH DAMAGE.
32 */ 32 */
33 33
34#include <sys/cdefs.h> 34#include <sys/cdefs.h>
35__RCSID("$NetBSD: popcount64.c,v 1.3 2009/07/21 17:14:12 joerg Exp $"); 35__RCSID("$NetBSD: popcount64.c,v 1.4 2009/07/21 19:56:55 drochner Exp $");
36 36
37#if !defined(_KERNEL) && !defined(_STANDALONE) 37#if !defined(_KERNEL) && !defined(_STANDALONE)
38#include <limits.h> 38#include <limits.h>
39#include <strings.h> 39#include <strings.h>
40#else 40#else
41#include <lib/libkern/libkern.h> 41#include <lib/libkern/libkern.h>
42#include <machine/limits.h> 42#include <machine/limits.h>
43#endif 43#endif
44 44
45/* 45/*
46 * If uint64_t is larger than size_t, the follow assumes that 46 * If uint64_t is larger than size_t, the follow assumes that
47 * splitting into 32bit halfes is faster. 47 * splitting into 32bit halfes is faster.
48 * 48 *
49 * The native pocount64 version is based on the same ideas as popcount64(3), 49 * The native pocount64 version is based on the same ideas as popcount64(3),
50 * see popcount64.c for comments. 50 * see popcount64.c for comments.
51 */ 51 */
52 52
53#if SIZE_MAX < 0xffffffffffffffffULL 53#if SIZE_MAX < 0xffffffffffffffffULL
54unsigned int 54unsigned int
55popcount64(uint64_t v) 55popcount64(uint64_t v)
56{ 56{
57 return popcount32((uint32_t)(v >> 32)) + 57 return popcount32((uint32_t)(v >> 32)) +
58 popcount32((uint32_t)(v & 0xffffffffULL)); 58 popcount32((uint32_t)(v & 0xffffffffULL));
59} 59}
60#else 60#else
61unsigned int 61unsigned int
62popcount64(uint64_t v) 62popcount64(uint64_t v)
63{ 63{
64 unsigned int c; 64 unsigned int c;
65 65
66 v = v - ((v >> 1) & 0x5555555555555555ULL); 66 v = v - ((v >> 1) & 0x5555555555555555ULL);
67 v = (v & 0x3333333333333333ULL) + ((v >> 2) & 0x3333333333333333ULL); 67 v = (v & 0x3333333333333333ULL) + ((v >> 2) & 0x3333333333333333ULL);
68 v = ((v + (v >> 4)) & 0x0f0f0f0f0f0f0f0fULL) * 0x0101010101010101ULL; 68 v = ((v + (v >> 4)) & 0x0f0f0f0f0f0f0f0fULL) * 0x0101010101010101ULL;
69 c = v >> 56; 69 c = v >> 56;
70 70
71 return c; 71 return c;
72} 72}
73#endif 73#endif
74 74
75#if ULONG_MAX == 0xffffffffffffffffULL 75#if ULONG_MAX == 0xffffffffffffffffULL
76__strong_alias(popcountl, popcount64); 76__strong_alias(popcountl, popcount64)
77#endif 77#endif
78 78
79#if ULLONG_MAX == 0xffffffffffffffffULL 79#if ULLONG_MAX == 0xffffffffffffffffULL
80__strong_alias(popcountll, popcount64); 80__strong_alias(popcountll, popcount64)
81#endif 81#endif
82 82