Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 #ifndef strings_h
2 #define strings_h
4 /* MSVC doesn't define ffs/ffsl. This dummy strings.h header is provided
5 * for both */
6 #include <intrin.h>
7 #pragma intrinsic(_BitScanForward)
8 static __forceinline int ffsl(long x)
9 {
10 unsigned long i;
12 if (_BitScanForward(&i, x))
13 return (i + 1);
14 return (0);
15 }
17 static __forceinline int ffs(int x)
18 {
20 return (ffsl(x));
21 }
23 #endif