summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/util/u_math.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/util/u_math.h')
-rw-r--r--src/gallium/auxiliary/util/u_math.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/util/u_math.h b/src/gallium/auxiliary/util/u_math.h
index b4ac0db3c50..0a829158b11 100644
--- a/src/gallium/auxiliary/util/u_math.h
+++ b/src/gallium/auxiliary/util/u_math.h
@@ -518,9 +518,15 @@ u_bit_scan64(uint64_t *mask)
static inline void
u_bit_scan_consecutive_range(unsigned *mask, int *start, int *count)
{
+ if (*mask == 0xffffffff) {
+ *start = 0;
+ *count = 32;
+ *mask = 0;
+ return;
+ }
*start = ffs(*mask) - 1;
*count = ffs(~(*mask >> *start)) - 1;
- *mask &= ~(((1 << *count) - 1) << *start);
+ *mask &= ~(((1u << *count) - 1) << *start);
}
/**