Replace SetPower2 by EDKII baselib - GetPowerOfTwo64.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <Jiewen.Yao@intel.com>
Reviewed-by: "Ma, Maurice" <Maurice.Ma@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17222 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Yao, Jiewen 2015-04-28 02:48:57 +00:00 committed by jyao1
parent 087c67d0a0
commit c8c48cbb19
1 changed files with 2 additions and 48 deletions

View File

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