From d44644e6d07e3050ad61864cec5c17c0045e1d47 Mon Sep 17 00:00:00 2001 From: Bill Welliver <bill@welliver.org> Date: Sun, 7 Dec 2014 19:29:36 +0100 Subject: [PATCH] windows: calculate trailing/leading zeros (more) correctly. --- src/bitvector.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bitvector.h b/src/bitvector.h index 3c0ebbbefc..83756fd9a5 100644 --- a/src/bitvector.h +++ b/src/bitvector.h @@ -30,7 +30,7 @@ static INLINE unsigned INT32 ATTRIBUTE((unused)) clz32(unsigned INT32 i) { #elif defined(HAS__BITSCANREVERSE) unsigned long index; if (_BitScanReverse(&index, (unsigned long)i)) - return (unsigned INT32)index; + return (unsigned INT32)(31 - index); return 32; #else unsigned INT32 t; @@ -101,7 +101,7 @@ static INLINE unsigned INT32 ATTRIBUTE((unused)) clz64(unsigned INT64 i) { # elif defined(HAS__BITSCANREVERSE64) unsigned long index; if (_BitScanReverse64(&index, i)) - return index; + return (63 - index); return 64; # else unsigned INT64 t; -- GitLab