Browse Source

Implement SDL_MostSignificantBitIndex32 using MSVC intrinsics

Cameron Gutman 4 years ago
parent
commit
91a831e2d0
1 changed files with 6 additions and 0 deletions
  1. 6 0
      include/SDL_bits.h

+ 6 - 0
include/SDL_bits.h

@@ -73,6 +73,12 @@ SDL_MostSignificantBitIndex32(Uint32 x)
         return -1;
     }
     return 31 - _SDL_clz_watcom(x);
+#elif defined(_MSC_VER)
+    unsigned long index;
+    if (_BitScanReverse(&index, x)) {
+        return index;
+    }
+    return -1;
 #else
     /* Based off of Bit Twiddling Hacks by Sean Eron Anderson
      * <seander@cs.stanford.edu>, released in the public domain.