Skip to content
Snippets Groups Projects
Commit d44644e6 authored by Bill Welliver's avatar Bill Welliver
Browse files

windows: calculate trailing/leading zeros (more) correctly.

parent 3726276f
No related branches found
No related tags found
No related merge requests found
...@@ -30,7 +30,7 @@ static INLINE unsigned INT32 ATTRIBUTE((unused)) clz32(unsigned INT32 i) { ...@@ -30,7 +30,7 @@ static INLINE unsigned INT32 ATTRIBUTE((unused)) clz32(unsigned INT32 i) {
#elif defined(HAS__BITSCANREVERSE) #elif defined(HAS__BITSCANREVERSE)
unsigned long index; unsigned long index;
if (_BitScanReverse(&index, (unsigned long)i)) if (_BitScanReverse(&index, (unsigned long)i))
return (unsigned INT32)index; return (unsigned INT32)(31 - index);
return 32; return 32;
#else #else
unsigned INT32 t; unsigned INT32 t;
...@@ -101,7 +101,7 @@ static INLINE unsigned INT32 ATTRIBUTE((unused)) clz64(unsigned INT64 i) { ...@@ -101,7 +101,7 @@ static INLINE unsigned INT32 ATTRIBUTE((unused)) clz64(unsigned INT64 i) {
# elif defined(HAS__BITSCANREVERSE64) # elif defined(HAS__BITSCANREVERSE64)
unsigned long index; unsigned long index;
if (_BitScanReverse64(&index, i)) if (_BitScanReverse64(&index, i))
return index; return (63 - index);
return 64; return 64;
# else # else
unsigned INT64 t; unsigned INT64 t;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment