On 13.04.2016 20:35, Bas Nieuwenhuizen wrote:
For use by radeonsi.

Signed-off-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>
---
  src/gallium/auxiliary/util/u_math.h | 8 ++++++++
  1 file changed, 8 insertions(+)

diff --git a/src/gallium/auxiliary/util/u_math.h 
b/src/gallium/auxiliary/util/u_math.h
index b4ac0db..3a468e4 100644
--- a/src/gallium/auxiliary/util/u_math.h
+++ b/src/gallium/auxiliary/util/u_math.h
@@ -523,6 +523,14 @@ u_bit_scan_consecutive_range(unsigned *mask, int *start, 
int *count)
     *mask &= ~(((1 << *count) - 1) << *start);
  }

+static inline void
+u_bit_scan_consecutive_range64(uint64_t *mask, int *start, int *count)
+{
+   *start = ffsll(*mask) - 1;
+   *count = ffsll(~(*mask >> *start)) - 1;
+   *mask &= ~(((1llu << *count) - 1) << *start);
+}
+

I don't think this does the right thing when *mask is ~0llu: *start will be 0 (correct), *count will be -1, and *mask will most likely be undefined.

Thanks,
Nicolai

  /**
   * Return float bits.
   */

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to