mirror of https://github.com/mgba-emu/mgba.git
18 lines
541 B
C
18 lines
541 B
C
|
/* Copyright (c) 2013-2015 Jeffrey Pfau
|
||
|
*
|
||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||
|
#ifndef UTIL_MATH_H
|
||
|
#define UTIL_MATH_H
|
||
|
|
||
|
#include "util/common.h"
|
||
|
|
||
|
static inline uint32_t popcount32(unsigned bits) {
|
||
|
bits = bits - ((bits >> 1) & 0x55555555);
|
||
|
bits = (bits & 0x33333333) + ((bits >> 2) & 0x33333333);
|
||
|
return (((bits + (bits >> 4)) & 0xF0F0F0F) * 0x1010101) >> 24;
|
||
|
}
|
||
|
|
||
|
#endif
|