21#define __L4UTIL_BITOPS_HAVE_ARCH_SET_BIT
27 "lock; btsl %1,%0 \n\t"
38#define __L4UTIL_BITOPS_HAVE_ARCH_CLEAR_BIT
44 "lock; btrl %1,%0 \n\t"
55#define __L4UTIL_BITOPS_HAVE_ARCH_COMPLEMENT_BIT
57l4util_complement_bit(
int b,
volatile l4_umword_t * dest)
61 "lock; btcl %1,%0 \n\t"
72#define __L4UTIL_BITOPS_HAVE_ARCH_TEST_BIT
74l4util_test_bit(
int b,
const volatile l4_umword_t * dest)
94#define __L4UTIL_BITOPS_HAVE_ARCH_BIT_TEST_AND_SET
102 "lock; btsl %2,%1 \n\t"
116#define __L4UTIL_BITOPS_HAVE_ARCH_BIT_TEST_AND_RESET
124 "lock; btrl %2,%1 \n\t"
138#define __L4UTIL_BITOPS_HAVE_ARCH_BIT_TEST_AND_COMPLEMENT
146 "lock; btcl %2,%1 \n\t"
160#define __L4UTIL_BITOPS_HAVE_ARCH_BIT_SCAN_REVERSE
182#define __L4UTIL_BITOPS_HAVE_ARCH_BIT_SCAN_FORWARD
203#define __L4UTIL_BITOPS_HAVE_ARCH_FIND_FIRST_SET_BIT
205l4util_find_first_set_bit(
const void * dest,
l4_size_t size)
213 "lea -4(%%edi),%%edi \n\t"
214 "bsf (%%edi),%%eax \n"
216 "sub %%esi,%%edi \n\t"
218 "add %%edi,%%eax \n\t"
220 "=a" (res),
"=c" (dummy0),
"=D" (dummy1)
222 "a" (0),
"c" ((size + 31) >> 5),
"D" (dest),
"S" (dest)
229#define __L4UTIL_BITOPS_HAVE_ARCH_FIND_FIRST_ZERO_BIT
231l4util_find_first_zero_bit(
const void * dest,
l4_size_t size)
242 "xor -4(%%edi),%%eax \n\t"
246 "sub %%esi,%%edi \n\t"
248 "add %%edi,%%edx \n\t"
250 "=a" (dummy0),
"=c" (dummy1),
"=d" (res),
"=D" (dummy2)
252 "a" (~0UL),
"c" ((size + 31) >> 5),
"d" (0),
"D" (dest),
"S" (dest)
unsigned int l4_size_t
Unsigned size type.
unsigned long l4_umword_t
Unsigned machine word.
signed long l4_mword_t
Signed machine word.
signed char l4_int8_t
Signed 8bit value.
#define __END_DECLS
End section with C types and functions.
#define L4_UNLIKELY(x)
Expression is unlikely to execute.
#define L4_INLINE
L4 Inline function attribute.
#define __BEGIN_DECLS
Start section with C types and functions.