From c728189201864850c562862fa7fc54d925c472e0 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 4 Aug 2020 00:11:02 +0200 Subject: [PATCH] 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 773a9f5cc5..0a336bf367 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +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. diff --git a/lib/ffsl.h b/lib/ffsl.h index cea438607b..d5c5a97509 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.39.5