1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 258e0166aSJonas Bonn /* 358e0166aSJonas Bonn * OpenRISC Linux 458e0166aSJonas Bonn * 558e0166aSJonas Bonn * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se> 658e0166aSJonas Bonn */ 758e0166aSJonas Bonn 858e0166aSJonas Bonn #ifndef __ASM_OPENRISC_FLS_H 958e0166aSJonas Bonn #define __ASM_OPENRISC_FLS_H 1058e0166aSJonas Bonn 1158e0166aSJonas Bonn 1258e0166aSJonas Bonn #ifdef CONFIG_OPENRISC_HAVE_INST_FL1 1358e0166aSJonas Bonn fls(unsigned int x)143fc2579eSMatthew Wilcoxstatic inline int fls(unsigned int x) 1558e0166aSJonas Bonn { 1658e0166aSJonas Bonn int ret; 1758e0166aSJonas Bonn 1858e0166aSJonas Bonn __asm__ ("l.fl1 %0,%1" 1958e0166aSJonas Bonn : "=r" (ret) 2058e0166aSJonas Bonn : "r" (x)); 2158e0166aSJonas Bonn 2258e0166aSJonas Bonn return ret; 2358e0166aSJonas Bonn } 2458e0166aSJonas Bonn 2558e0166aSJonas Bonn #else 2658e0166aSJonas Bonn #include <asm-generic/bitops/fls.h> 2758e0166aSJonas Bonn #endif 2858e0166aSJonas Bonn 2958e0166aSJonas Bonn #endif /* __ASM_OPENRISC_FLS_H */ 30