1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * OpenRISC Linux 4 * 5 * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se> 6 */ 7 8 #ifndef __ASM_OPENRISC___FFS_H 9 #define __ASM_OPENRISC___FFS_H 10 11 12 #ifdef CONFIG_OPENRISC_HAVE_INST_FF1 13 __ffs(unsigned long x)14static inline unsigned long __ffs(unsigned long x) 15 { 16 int ret; 17 18 __asm__ ("l.ff1 %0,%1" 19 : "=r" (ret) 20 : "r" (x)); 21 22 return ret-1; 23 } 24 25 #else 26 #include <asm-generic/bitops/__ffs.h> 27 #endif 28 29 #endif /* __ASM_OPENRISC___FFS_H */ 30