1b6cbf720SGianluca Guida/* 2b6cbf720SGianluca Guida * Written by J.T. Conklin <jtc@NetBSD.org>. 3b6cbf720SGianluca Guida * Public domain. 4b6cbf720SGianluca Guida */ 5b6cbf720SGianluca Guida 6b6cbf720SGianluca Guida#include <machine/asm.h> 7b6cbf720SGianluca Guida 8b6cbf720SGianluca Guida#if defined(LIBC_SCCS) 9*0a6a1f1dSLionel Sambuc RCSID("$NetBSD: ffs.S,v 1.2 2014/03/22 19:38:46 jakllsch Exp $") 10b6cbf720SGianluca Guida#endif 11b6cbf720SGianluca Guida 12b6cbf720SGianluca GuidaENTRY(ffs) 13b6cbf720SGianluca Guida bsfl 4(%esp),%eax 14b6cbf720SGianluca Guida jz L1 /* ZF is set if all bits are 0 */ 15b6cbf720SGianluca Guida incl %eax /* bits numbered from 1, not 0 */ 16b6cbf720SGianluca Guida ret 17b6cbf720SGianluca Guida 18b6cbf720SGianluca Guida _ALIGN_TEXT 19b6cbf720SGianluca GuidaL1: xorl %eax,%eax /* clear result */ 20b6cbf720SGianluca Guida ret 21*0a6a1f1dSLionel SambucEND(ffs) 22