1*58e0166aSJonas Bonn /* 2*58e0166aSJonas Bonn * OpenRISC Linux 3*58e0166aSJonas Bonn * 4*58e0166aSJonas Bonn * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se> 5*58e0166aSJonas Bonn * 6*58e0166aSJonas Bonn * This program is free software; you can redistribute it and/or modify 7*58e0166aSJonas Bonn * it under the terms of the GNU General Public License as published by 8*58e0166aSJonas Bonn * the Free Software Foundation; either version 2 of the License, or 9*58e0166aSJonas Bonn * (at your option) any later version. 10*58e0166aSJonas Bonn */ 11*58e0166aSJonas Bonn 12*58e0166aSJonas Bonn #ifndef __ASM_OPENRISC_FLS_H 13*58e0166aSJonas Bonn #define __ASM_OPENRISC_FLS_H 14*58e0166aSJonas Bonn 15*58e0166aSJonas Bonn 16*58e0166aSJonas Bonn #ifdef CONFIG_OPENRISC_HAVE_INST_FL1 17*58e0166aSJonas Bonn 18*58e0166aSJonas Bonn static inline int fls(int x) 19*58e0166aSJonas Bonn { 20*58e0166aSJonas Bonn int ret; 21*58e0166aSJonas Bonn 22*58e0166aSJonas Bonn __asm__ ("l.fl1 %0,%1" 23*58e0166aSJonas Bonn : "=r" (ret) 24*58e0166aSJonas Bonn : "r" (x)); 25*58e0166aSJonas Bonn 26*58e0166aSJonas Bonn return ret; 27*58e0166aSJonas Bonn } 28*58e0166aSJonas Bonn 29*58e0166aSJonas Bonn #else 30*58e0166aSJonas Bonn #include <asm-generic/bitops/fls.h> 31*58e0166aSJonas Bonn #endif 32*58e0166aSJonas Bonn 33*58e0166aSJonas Bonn #endif /* __ASM_OPENRISC_FLS_H */ 34