in include/asm/bitops.h [157:169]
static inline unsigned long __ffs(unsigned long word)
{
unsigned long result;
result = -1;
__asm__("1:\n\t"
"shlr.l %1\n\t"
"adds #1,%0\n\t"
"bcc 1b"
: "=r" (result),"=r"(word)
: "0"(result), "1"(word));
return result;
}