summaryrefslogtreecommitdiff
path: root/include/asm-frv/bitops.h
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2009-01-09 08:39:43 (GMT)
committerLen Brown <len.brown@intel.com>2009-01-09 08:39:43 (GMT)
commitb2576e1d4408e134e2188c967b1f28af39cd79d4 (patch)
tree004f3c82faab760f304ce031d6d2f572e7746a50 /include/asm-frv/bitops.h
parent3cc8a5f4ba91f67bbdb81a43a99281a26aab8d77 (diff)
parent2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f (diff)
downloadlinux-fsl-qoriq-b2576e1d4408e134e2188c967b1f28af39cd79d4.tar.xz
Merge branch 'linus' into release
Diffstat (limited to 'include/asm-frv/bitops.h')
-rw-r--r--include/asm-frv/bitops.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/asm-frv/bitops.h b/include/asm-frv/bitops.h
index 39456ba..287f6f6 100644
--- a/include/asm-frv/bitops.h
+++ b/include/asm-frv/bitops.h
@@ -339,6 +339,19 @@ int __ffs(unsigned long x)
return 31 - bit;
}
+/**
+ * __fls - find last (most-significant) set bit in a long word
+ * @word: the word to search
+ *
+ * Undefined if no set bit exists, so code should check against 0 first.
+ */
+static inline unsigned long __fls(unsigned long word)
+{
+ unsigned long bit;
+ asm("scan %1,gr0,%0" : "=r"(bit) : "r"(word));
+ return bit;
+}
+
/*
* special slimline version of fls() for calculating ilog2_u32()
* - note: no protection against n == 0