]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Revised GetPowerOfTwo32() and GetPowerOfTwo64() to be more efficient.
authorbxing <bxing@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 13 Jul 2006 08:05:35 +0000 (08:05 +0000)
committerbxing <bxing@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 13 Jul 2006 08:05:35 +0000 (08:05 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@963 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Library/BaseLib/GetPowerOfTwo32.c
MdePkg/Library/BaseLib/GetPowerOfTwo64.c

index dbf4ca65138cef6585e2c550afc359b0308e2098..a639fd4a6d2a9f0a66def2887ff86334fd3e286b 100644 (file)
@@ -33,8 +33,9 @@ GetPowerOfTwo32 (
   IN      UINT32                    Operand\r
   )\r
 {\r
   IN      UINT32                    Operand\r
   )\r
 {\r
-  INTN                              BitPos;\r
-  \r
-  BitPos = HighBitSet32 (Operand);\r
-  return BitPos >= 0 ? 1ul << BitPos : 0;\r
+  if (Operand == 0) {\r
+    return 0;\r
+  }\r
+\r
+  return 1ul << HighBitSet32 (Operand);\r
 }\r
 }\r
index 8372a7f1361594ff413134c574edb82d4c83d26e..52d148c9244ea0b0ed3cfec73e4e0e68a556a043 100644 (file)
@@ -33,8 +33,9 @@ GetPowerOfTwo64 (
   IN      UINT64                    Operand\r
   )\r
 {\r
   IN      UINT64                    Operand\r
   )\r
 {\r
-  INTN                              BitPos;\r
+  if (Operand == 0) {\r
+    return 0;\r
+  }\r
 \r
 \r
-  BitPos = HighBitSet64 (Operand);\r
-  return BitPos >= 0 ? LShiftU64 (1, BitPos) : 0;\r
+  return LShiftU64 (1, HighBitSet64 (Operand));\r
 }\r
 }\r