#ifndef I386_BITOPS_H | |
#define I386_BITOPS_H | |
/** | |
* log2 - Find the truncated log base 2 of x | |
*/ | |
static inline unsigned long log2(unsigned long x) | |
{ | |
unsigned long r = 0; | |
__asm__( | |
"bsrl %1, %0\n\t" | |
"jnz 1f\n\t" | |
"movl $-1, %0\n\t" | |
"1:\n\t" | |
: "=r" (r) : "r" (x)); | |
return r; | |
} | |
#endif /* I386_BITOPS_H */ |