UINT32 UpperValue;\r
UINT64 Mask;\r
UINTN Offset;\r
+ UINTN LowBit;\r
UINT64 Base;\r
UINT64 Length;\r
UINT64 Limit;\r
\r
Base = Base | LShiftU64 ((UINT64) OriginalUpperValue, 32);\r
Length = Length | LShiftU64 ((UINT64) UpperValue, 32);\r
- Length = (~Length) + 1;\r
+ if (Length != 0) {\r
+ LowBit = LowBitSet64 (Length);\r
+ Length = LShiftU64 (1ULL, LowBit);\r
+ }\r
\r
if ((Value & BIT3) == BIT3) {\r
MemAperture = PMemAbove4G;\r