/home/travis/build/MoarVM/MoarVM/src/bithacks.h
Line | Count | Source (jump to first uncovered line) |
1 | 0 | static MVMuint32 MVM_bithacks_count_bits(MVMuint64 value) { |
2 | 0 | MVMuint32 count; |
3 | 0 |
|
4 | 0 | for (count = 0; value; count++) |
5 | 0 | value &= value - 1; |
6 | 0 |
|
7 | 0 | return count; |
8 | 0 | } |
9 | | |
10 | | static int MVM_bithacks_is_pow2z(MVMuint64 value) |
11 | 0 | { |
12 | 0 | return (value & (value - 1)) == 0; |
13 | 0 | } |
14 | | |
15 | | static MVMuint64 MVM_bithacks_next_greater_pow2(MVMuint64 value) |
16 | 5 | { |
17 | 5 | enum { BITS = 64 }; |
18 | 5 | int exp; |
19 | 5 | |
20 | 35 | for(exp = 0; (1 << exp) < BITS; exp++) |
21 | 30 | value |= value >> (1 << exp); |
22 | 5 | |
23 | 5 | return value + 1; |
24 | 5 | } |