diff options
Diffstat (limited to 'libc/arch-x86/string/fss.S')
-rw-r--r-- | libc/arch-x86/string/fss.S | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libc/arch-x86/string/fss.S b/libc/arch-x86/string/fss.S new file mode 100644 index 0000000..96affab --- /dev/null +++ b/libc/arch-x86/string/fss.S @@ -0,0 +1,17 @@ +/* $OpenBSD: ffs.S,v 1.3 2005/08/07 11:30:38 espie Exp $ */ +/* + * Written by J.T. Conklin <jtc@netbsd.org>. + * Public domain. + */ + +#include <machine/asm.h> + +ENTRY(ffs) + bsfl 4(%esp),%eax + jz L1 /* ZF is set if all bits are 0 */ + incl %eax /* bits numbered from 1, not 0 */ + ret + + .align 2 +L1: xorl %eax,%eax /* clear result */ + ret |