Mesa (master): gallium/util: add util_bit_last - finds the last bit set in a word

Marek Olšák mareko at kemper.freedesktop.org
Tue Jul 17 19:56:11 UTC 2012


Module: Mesa
Branch: master
Commit: 6694a68d890a9aa491b5c3e8a576318bb6124e21
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6694a68d890a9aa491b5c3e8a576318bb6124e21

Author: Marek Olšák <maraeo at gmail.com>
Date:   Fri Mar 30 00:21:11 2012 +0200

gallium/util: add util_bit_last - finds the last bit set in a word

---

 src/gallium/auxiliary/util/u_math.h |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_math.h b/src/gallium/auxiliary/util/u_math.h
index f35c35f..90b421e 100644
--- a/src/gallium/auxiliary/util/u_math.h
+++ b/src/gallium/auxiliary/util/u_math.h
@@ -477,6 +477,20 @@ unsigned ffs( unsigned u )
 
 #endif /* FFS_DEFINED */
 
+/**
+ * Find last bit set in a word.  The least significant bit is 1.
+ * Return 0 if no bits are set.
+ */
+static INLINE unsigned util_last_bit(unsigned u)
+{
+   unsigned r = 0;
+   while (u) {
+       r++;
+       u >>= 1;
+   }
+   return r;
+}
+
 
 /* Destructively loop over all of the bits in a mask as in:
  *




More information about the mesa-commit mailing list