>From c728189201864850c562862fa7fc54d925c472e0 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 4 Aug 2020 00:11:02 +0200 Subject: [PATCH 2/6] ffsll: Optimize for MSVC in 32-bit mode. * lib/ffsl.h: Include . (ffs): Define as inline function, like in lib/ffs.c. --- ChangeLog | 6 ++++++ lib/ffsl.h | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/ChangeLog b/ChangeLog index 773a9f5..0a336bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2020-08-03 Bruno Haible + ffsll: Optimize for MSVC in 32-bit mode. + * lib/ffsl.h: Include . + (ffs): Define as inline function, like in lib/ffs.c. + +2020-08-03 Bruno Haible + ffs: Optimize for MSVC. * lib/ffs.c: Include . (ffs): With MSVC, use the _BitScanForward built-in. diff --git a/lib/ffsl.h b/lib/ffsl.h index cea4386..d5c5a97 100644 --- a/lib/ffsl.h +++ b/lib/ffsl.h @@ -27,6 +27,22 @@ #include #include +#if defined _MSC_VER +# include +/* Copied from ffs.c. */ +static inline int +ffs (int i) +{ + /* _BitScanForward + */ + unsigned long bit; + if (_BitScanForward (&bit, i)) + return bit + 1; + else + return 0; +} +#endif + #if !defined FUNC || !defined TYPE # error #endif -- 2.7.4