diff options
Diffstat (limited to 'include/msvc_compat/strings.h')
| -rw-r--r-- | include/msvc_compat/strings.h | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/include/msvc_compat/strings.h b/include/msvc_compat/strings.h index a3ee250..996f256 100644 --- a/include/msvc_compat/strings.h +++ b/include/msvc_compat/strings.h @@ -6,32 +6,30 @@ #ifdef _MSC_VER # include <intrin.h> # pragma intrinsic(_BitScanForward) -static __forceinline int ffsl(long x) -{ +static __forceinline int ffsl(long x) { unsigned long i; - if (_BitScanForward(&i, x)) - return (i + 1); - return (0); + if (_BitScanForward(&i, x)) { + return i + 1; + } + return 0; } -static __forceinline int ffs(int x) -{ - - return (ffsl(x)); +static __forceinline int ffs(int x) { + return ffsl(x); } # ifdef _M_X64 # pragma intrinsic(_BitScanForward64) # endif -static __forceinline int ffsll(unsigned __int64 x) -{ +static __forceinline int ffsll(unsigned __int64 x) { unsigned long i; #ifdef _M_X64 - if (_BitScanForward64(&i, x)) - return (i + 1); - return (0); + if (_BitScanForward64(&i, x)) { + return i + 1; + } + return 0; #else // Fallback for 32-bit build where 64-bit version not available // assuming little endian @@ -42,11 +40,12 @@ static __forceinline int ffsll(unsigned __int64 x) s.ll = x; - if (_BitScanForward(&i, s.l[0])) - return (i + 1); - else if(_BitScanForward(&i, s.l[1])) - return (i + 33); - return (0); + if (_BitScanForward(&i, s.l[0])) { + return i + 1; + } else if(_BitScanForward(&i, s.l[1])) { + return i + 33; + } + return 0; #endif } |
