src/arch/x86. Signed-off-by: Stefan Reinauer <stepan@coreboot.org> Acked-by: Patrick Georgi <patrick@georgi-clan.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6161 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
21 lines
316 B
C
21 lines
316 B
C
#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 */
|