summaryrefslogtreecommitdiff
path: root/MdePkg/Library/BaseLib/BitField.c
diff options
context:
space:
mode:
authorxli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524>2007-01-25 06:05:36 +0000
committerxli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524>2007-01-25 06:05:36 +0000
commit582510249f2fb1334e507b99421b9485f6b89159 (patch)
treecd9d7414885d26e79565cd12ec241af93dc600f2 /MdePkg/Library/BaseLib/BitField.c
parentba3a1cb5bb97ffdea980f188fbd14b08200aeac6 (diff)
downloadedk2-platforms-582510249f2fb1334e507b99421b9485f6b89159.tar.xz
Make MDE package pass intel IPF compiler with /W4 /WX switched on.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2312 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/BaseLib/BitField.c')
-rw-r--r--MdePkg/Library/BaseLib/BitField.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/MdePkg/Library/BaseLib/BitField.c b/MdePkg/Library/BaseLib/BitField.c
index 0b517aa974..3db8a23c95 100644
--- a/MdePkg/Library/BaseLib/BitField.c
+++ b/MdePkg/Library/BaseLib/BitField.c
@@ -14,6 +14,8 @@
**/
+#include "BaseLibInternals.h"
+
/**
Worker function that returns a bit field from Operand
@@ -763,10 +765,16 @@ BitFieldOr64 (
IN UINT64 OrData
)
{
+ UINT64 Value1;
+ UINT64 Value2;
+
ASSERT (EndBit < sizeof (Operand) * 8);
ASSERT (StartBit <= EndBit);
- return Operand |
- (LShiftU64 (OrData, StartBit) & ~LShiftU64 ((UINT64)-2, EndBit));
+
+ Value1 = LShiftU64 (OrData, StartBit);
+ Value2 = LShiftU64 ((UINT64) - 2, EndBit);
+
+ return Operand | (Value1 & ~Value2);
}
/**
@@ -801,10 +809,16 @@ BitFieldAnd64 (
IN UINT64 AndData
)
{
+ UINT64 Value1;
+ UINT64 Value2;
+
ASSERT (EndBit < sizeof (Operand) * 8);
ASSERT (StartBit <= EndBit);
- return Operand &
- ~(LShiftU64 (~AndData, StartBit) & ~LShiftU64 ((UINT64)-2, EndBit));
+
+ Value1 = LShiftU64 (~AndData, StartBit);
+ Value2 = LShiftU64 ((UINT64)-2, EndBit);
+
+ return Operand & ~(Value1 & ~Value2);
}
/**