\r
**/\r
\r
+\r
+\r
+\r
#include "BaseLibInternals.h"\r
\r
/**\r
\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
{\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