From 528f5bd58a139174170c4130c67dca30193c9057 Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 5 Dec 2011 07:42:31 +0100 Subject: xserver xkeyboard-config mesa git update 5 dec 2011 --- mesalib/src/mesa/main/bitset.h | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'mesalib/src/mesa/main/bitset.h') diff --git a/mesalib/src/mesa/main/bitset.h b/mesalib/src/mesa/main/bitset.h index 7a0704b14..c27b4c474 100644 --- a/mesalib/src/mesa/main/bitset.h +++ b/mesalib/src/mesa/main/bitset.h @@ -129,17 +129,32 @@ __bitset_ffs(const BITSET_WORD *x, int n) /* bit range operations */ -#define BITSET64_TEST_RANGE(x, b, e) \ +#define BITSET64_TEST_SUBRANGE(x, b, e) \ (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ ((x)[BITSET64_BITWORD(b)] & BITSET64_RANGE(b, e)) : \ (assert (!"BITSET64_TEST_RANGE: bit range crosses word boundary"), 0)) -#define BITSET64_SET_RANGE(x, b, e) \ +#define BITSET64_TEST_RANGE(x, b, e) \ + (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ + (BITSET64_TEST_SUBRANGE(x, b, e)) : \ + (BITSET64_TEST_SUBRANGE(x, b, BITSET64_WORDBITS - 1) | \ + BITSET64_TEST_SUBRANGE(x, BITSET64_WORDBITS, e))) +#define BITSET64_SET_SUBRANGE(x, b, e) \ (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ ((x)[BITSET64_BITWORD(b)] |= BITSET64_RANGE(b, e)) : \ (assert (!"BITSET64_SET_RANGE: bit range crosses word boundary"), 0)) -#define BITSET64_CLEAR_RANGE(x, b, e) \ +#define BITSET64_SET_RANGE(x, b, e) \ + (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ + (BITSET64_SET_SUBRANGE(x, b, e)) : \ + (BITSET64_SET_SUBRANGE(x, b, BITSET64_WORDBITS - 1) | \ + BITSET64_SET_SUBRANGE(x, BITSET64_WORDBITS, e))) +#define BITSET64_CLEAR_SUBRANGE(x, b, e) \ (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ ((x)[BITSET64_BITWORD(b)] &= ~BITSET64_RANGE(b, e)) : \ (assert (!"BITSET64_CLEAR_RANGE: bit range crosses word boundary"), 0)) +#define BITSET64_CLEAR_RANGE(x, b, e) \ + (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ + (BITSET64_CLEAR_SUBRANGE(x, b, e)) : \ + (BITSET64_CLEAR_SUBRANGE(x, b, BITSET64_WORDBITS - 1) | \ + BITSET64_CLEAR_SUBRANGE(x, BITSET64_WORDBITS, e))) #endif -- cgit v1.2.3