diff options
author | Edward O'Callaghan <eocallaghan@auroraux.org> | 2009-08-07 20:30:09 +0000 |
---|---|---|
committer | Edward O'Callaghan <eocallaghan@auroraux.org> | 2009-08-07 20:30:09 +0000 |
commit | 37a6a455466e5b197311771a777ab241e471ed8a (patch) | |
tree | ea6c3c087b32bfb7a70fa3ddf4f9a208a105fc50 /lib/popcountsi2.c | |
parent | 686fd2aec10c8fd090a58f70b5d1ebc2754c63a8 (diff) | |
download | compiler-rt-37a6a455466e5b197311771a777ab241e471ed8a.tar.gz |
Code style and Readability fixes. Credit to Craig van Vliet.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@78403 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/popcountsi2.c')
-rw-r--r-- | lib/popcountsi2.c | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/lib/popcountsi2.c b/lib/popcountsi2.c index 68220aef9..4f092ee40 100644 --- a/lib/popcountsi2.c +++ b/lib/popcountsi2.c @@ -1,32 +1,33 @@ -//===-- popcountsi2.c - Implement __popcountsi2 ---------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file implements __popcountsi2 for the compiler_rt library. -// -//===----------------------------------------------------------------------===// +/* ===-- popcountsi2.c - Implement __popcountsi2 ---------------------------=== + * + * The LLVM Compiler Infrastructure + * + * This file is distributed under the University of Illinois Open Source + * License. See LICENSE.TXT for details. + * + * ===----------------------------------------------------------------------=== + * + * This file implements __popcountsi2 for the compiler_rt library. + * + * ===----------------------------------------------------------------------=== + */ #include "int_lib.h" -// Returns: count of 1 bits +/* Returns: count of 1 bits */ si_int __popcountsi2(si_int a) { su_int x = (su_int)a; x = x - ((x >> 1) & 0x55555555); - // Every 2 bits holds the sum of every pair of bits + /* Every 2 bits holds the sum of every pair of bits */ x = ((x >> 2) & 0x33333333) + (x & 0x33333333); - // Every 4 bits holds the sum of every 4-set of bits (3 significant bits) + /* Every 4 bits holds the sum of every 4-set of bits (3 significant bits) */ x = (x + (x >> 4)) & 0x0F0F0F0F; - // Every 8 bits holds the sum of every 8-set of bits (4 significant bits) + /* Every 8 bits holds the sum of every 8-set of bits (4 significant bits) */ x = (x + (x >> 16)); - // The lower 16 bits hold two 8 bit sums (5 significant bits). - // Upper 16 bits are garbage - return (x + (x >> 8)) & 0x0000003F; // (6 significant bits) + /* The lower 16 bits hold two 8 bit sums (5 significant bits).*/ + /* Upper 16 bits are garbage */ + return (x + (x >> 8)) & 0x0000003F; /* (6 significant bits) */ } |