]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/HighBitSet32.c
Remove NibbleToHexChar() function from BaseLib
[mirror_edk2.git] / MdePkg / Library / BaseLib / HighBitSet32.c
index 65f067ac1adfd9e1634ae2f18447f55ee5e3ff05..2c5377c8fc776a7336b31d99b70d86549ccaab8e 100644 (file)
@@ -12,6 +12,9 @@
 \r
 **/\r
 \r
+\r
+\r
+\r
 #include "BaseLibInternals.h"\r
 \r
 /**\r
@@ -24,8 +27,8 @@
 \r
   @param  Operand The 32-bit operand to evaluate.\r
 \r
-  @return Position of the highest bit set in Operand if found.\r
-  @retval -1  Operand is zero.\r
+  @retval 0..31  Position of the highest bit set in Operand if found.\r
+  @retval -1    Operand is zero.\r
 \r
 **/\r
 INTN\r
@@ -36,6 +39,9 @@ HighBitSet32 (
 {\r
   INTN                              BitIndex;\r
 \r
-  for (BitIndex = -1; Operand != 0; BitIndex++, Operand >>= 1);\r
+  if (Operand == 0) {\r
+    return - 1;\r
+  }\r
+  for (BitIndex = 31; (INT32)Operand > 0; BitIndex--, Operand <<= 1);\r
   return BitIndex;\r
 }\r