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:
parent
087c67d0a0
commit
c8c48cbb19
|
@ -1,6 +1,6 @@
|
||||||
/** @file
|
/** @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
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -17,17 +17,6 @@
|
||||||
#include <Library/CacheAsRamLib.h>
|
#include <Library/CacheAsRamLib.h>
|
||||||
#include "CacheLibInternal.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.
|
Search the memory cache type for specific memory from MTRR.
|
||||||
|
|
||||||
|
@ -236,11 +225,7 @@ Power2MaxMemory (
|
||||||
//
|
//
|
||||||
// Compute inital power of 2 size to return
|
// Compute inital power of 2 size to return
|
||||||
//
|
//
|
||||||
if (RShiftU64(MemoryLength, 32)) {
|
Result = GetPowerOfTwo64(MemoryLength);
|
||||||
Result = LShiftU64((UINT64)SetPower2((UINT32) RShiftU64(MemoryLength, 32)), 32);
|
|
||||||
} else {
|
|
||||||
Result = (UINT64)SetPower2((UINT32)MemoryLength);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Special case base of 0 as all ranges are valid
|
// Special case base of 0 as all ranges are valid
|
||||||
|
@ -295,37 +280,6 @@ CheckMtrrAlignment (
|
||||||
return ShiftedBase % ShiftedSize;
|
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.
|
Programs fixed MTRRs registers.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue