On 10/03/2011 04:11 PM, Paul Berry wrote:
The i965 driver already had a function to do this (brw_count_bits()),
but it was buggy (it only counted the bottom 32 bits) and it was
clumsy (it had a strange and broken fallback for non-GCC-like
compilers, which fortunately was never used). Since Mesa already has
a _mesa_bitcount() function, it seems better to just create a
_mesa_bitcount_64() function rather than special-case this in the i965
driver.
---
src/mesa/drivers/dri/i965/brw_util.h | 7 ++-----
src/mesa/main/imports.c | 13 +++++++++++++
src/mesa/main/imports.h | 3 +++
3 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_util.h
b/src/mesa/drivers/dri/i965/brw_util.h
index 940a871..bbf36f6 100644
--- a/src/mesa/drivers/dri/i965/brw_util.h
+++ b/src/mesa/drivers/dri/i965/brw_util.h
@@ -34,15 +34,12 @@
#define BRW_UTIL_H
#include "main/mtypes.h"
+#include "main/imports.h"
-#ifdef __GNUC__
-#define brw_count_bits(v) __builtin_popcount(v)
-#else
static inline GLuint brw_count_bits(uint64_t v)
{
- return _mesa_popcount(v>>32) + _mesa_popcount(v&0xffffffff);
+ return _mesa_bitcount_64(v);
}
-#endif
I'm guessing you could eventually get rid of the brw_count_bits()
wrapper altogether at some point.
Reviewed-by: Brian Paul <bri...@vmware.com>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev