]> Savannah Git Hosting - gnulib.git/commitdiff
stdbit-h: Fix leading-zeros/ones functions on 64-bit MSVC.
authorBruno Haible <bruno@clisp.org>
Fri, 17 May 2024 22:27:12 +0000 (00:27 +0200)
committerBruno Haible <bruno@clisp.org>
Fri, 17 May 2024 22:27:12 +0000 (00:27 +0200)
* lib/stdbit.in.h (__gl_stdbit_clzll) [_MSC_VER]: On x86_64, use
_BitScanReverse64.

ChangeLog
lib/stdbit.in.h

index a6dfe2c370bea184bac341b2c54fecb00a5de90d..5207f25b3a7f42667067bcdc5769c28fe1ba8d6c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2024-05-17  Bruno Haible  <bruno@clisp.org>
+
+       stdbit-h: Fix leading-zeros/ones functions on 64-bit MSVC.
+       * lib/stdbit.in.h (__gl_stdbit_clzll) [_MSC_VER]: On x86_64, use
+       _BitScanReverse64.
+
 2024-05-17  Bruno Haible  <bruno@clisp.org>
 
        getusershell tests: Fix link error on MSVC.
index b5b5870eba5f6ad1446ba057d941a7cb42b119a9..a466a45d7718088da393b448c09a25edb5aa8ba5 100644 (file)
@@ -169,7 +169,7 @@ __gl_stdbit_clzll (unsigned long long int n)
 {
 # ifdef _M_X64
   unsigned long int r;
-  return 8 * sizeof n - (_BitScanReverse (&r, n) ? r + 1 : 0);
+  return 8 * sizeof n - (_BitScanReverse64 (&r, n) ? r + 1 : 0);
 # else
   unsigned long int hi = n >> 32;
   return __gl_stdbit_clzl (hi ? hi : n) + (hi ? 0 : 32);