index 40d404d..1a08918 100644 (file)
@@ -1,6 +1,6 @@
/** @file\r
\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials\r
which accompanies this distribution.  The full text of the license may be found at\r
#include <Library/CacheAsRamLib.h>\r
#include "CacheLibInternal.h"\r
\r
-/**\r
-  Calculate the maximum value which is a power of 2, but less the Input.\r
-\r
-  @param[in]  Input        The number to pass in.\r
-  @return The maximum value which is align to power of 2 and less the Input\r
-**/\r
-UINT32\r
-SetPower2 (\r
-  IN  UINT32                    Input\r
-  );\r
-\r
/**\r
Search the memory cache type for specific memory from MTRR.\r
\r
@@ -236,11 +225,7 @@ Power2MaxMemory (
//\r
// Compute inital power of 2 size to return\r
//\r
-  if (RShiftU64(MemoryLength, 32)) {\r
-    Result = LShiftU64((UINT64)SetPower2((UINT32) RShiftU64(MemoryLength, 32)), 32);\r
-  } else {\r
-    Result = (UINT64)SetPower2((UINT32)MemoryLength);\r
-  }\r
+  Result = GetPowerOfTwo64(MemoryLength);\r
\r
//\r
// Special case base of 0 as all ranges are valid\r
@@ -295,37 +280,6 @@ CheckMtrrAlignment (
return ShiftedBase % ShiftedSize;\r
}\r
\r
-/**\r
-  Calculate the maximum value which is a power of 2, but less the Input.\r
-\r
-  @param[in]  Input        The number to pass in.\r
-\r
-  @return The maximum value which is align to power of 2 and less the Input.\r
-**/\r
-UINT32\r
-SetPower2 (\r
-  IN UINT32 Input\r
-  )\r
-{\r
-  UINT32 Result;\r
-\r
-  Result = 0;\r
-#if defined(__GCC__)\r
-  asm("bsr %1, \\r
-      %%eax; \\r
-     bts %%eax, \\r
-      %0;" :"=r"(Result) :\r
-    "r"(Input)\r
-  );\r
-#elif defined(_MSC_VER)\r
-  _asm {\r
-    bsr eax, Input\r
-    bts Result, eax\r
-  }\r
-#endif\r
-  return Result;\r
-}\r
-\r
/**\r
Programs fixed MTRRs registers.\r
\r