diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2026-04-06 15:18:26 +0200 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2026-04-06 15:18:26 +0200 |
| commit | fe534f1497da6447153064d7bba00243000f803b (patch) | |
| tree | 851cd657931dce7584baf00cf092360416161793 /src/arch/portable.h | |
| parent | b729562fc3c1b85f1ea9a19fadd1caaf85b85777 (diff) | |
| download | nissy-core-fe534f1497da6447153064d7bba00243000f803b.tar.gz nissy-core-fe534f1497da6447153064d7bba00243000f803b.zip | |
Added popcount_u64
Diffstat (limited to '')
| -rw-r--r-- | src/arch/portable.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/arch/portable.h b/src/arch/portable.h index 4b66fb6..162ed1a 100644 --- a/src/arch/portable.h +++ b/src/arch/portable.h | |||
| @@ -34,6 +34,17 @@ popcount_u32(uint32_t x) | |||
| 34 | return (int)x; | 34 | return (int)x; |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | STATIC_INLINE int | ||
| 38 | popcount_u64(uint64_t x) | ||
| 39 | { | ||
| 40 | int top, bottom; | ||
| 41 | |||
| 42 | bottom = popcount_u32((uint32_t)(x & UINT64_C(0xFFFFFFFF))); | ||
| 43 | top = popcount_u32((uint32_t)(x >> UINT64_C(32))); | ||
| 44 | |||
| 45 | return top + bottom; | ||
| 46 | } | ||
| 47 | |||
| 37 | STATIC void | 48 | STATIC void |
| 38 | pieces(cube_t cube[static 1], uint8_t c[static 8], uint8_t e[static 12]) | 49 | pieces(cube_t cube[static 1], uint8_t c[static 8], uint8_t e[static 12]) |
| 39 | { | 50 | { |
