Mesa (master): vl/vlc: add remove bits function

Christian König deathsimple at kemper.freedesktop.org
Thu Feb 6 15:19:55 UTC 2014


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

Author: Christian König <christian.koenig at amd.com>
Date:   Tue Sep 17 07:22:34 2013 -0600

vl/vlc: add remove bits function

Signed-off-by: Christian König <christian.koenig at amd.com>

---

 src/gallium/auxiliary/vl/vl_vlc.h |   12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/gallium/auxiliary/vl/vl_vlc.h b/src/gallium/auxiliary/vl/vl_vlc.h
index 451fd5e..401b50e 100644
--- a/src/gallium/auxiliary/vl/vl_vlc.h
+++ b/src/gallium/auxiliary/vl/vl_vlc.h
@@ -338,4 +338,16 @@ vl_vlc_search_byte(struct vl_vlc *vlc, unsigned num_bits, uint8_t value)
    }
 }
 
+/**
+ * remove num_bits bits starting at pos from the bitbuffer
+ */
+static INLINE void
+vl_vlc_removebits(struct vl_vlc *vlc, unsigned pos, unsigned num_bits)
+{
+   uint64_t lo = (vlc->buffer & (~0UL >> (pos + num_bits))) << num_bits;
+   uint64_t hi = (vlc->buffer & (~0UL << (64 - pos)));
+   vlc->buffer = lo | hi;
+   vlc->invalid_bits += num_bits;
+}
+
 #endif /* vl_vlc_h */




More information about the mesa-commit mailing list