]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/BitField.c
Make MDE package pass intel IPF compiler with /W4 /WX switched on.
[mirror_edk2.git] / MdePkg / Library / BaseLib / BitField.c
index 0b517aa974f7f505cd7a59c472df3e03a7b32305..3db8a23c950ebbc4f23b84b73277ecfc9f9b048a 100644 (file)
@@ -14,6 +14,8 @@
 \r
 **/\r
 \r
+#include "BaseLibInternals.h"\r
+\r
 /**\r
   Worker function that returns a bit field from Operand\r
 \r
@@ -763,10 +765,16 @@ BitFieldOr64 (
   IN      UINT64                    OrData\r
   )\r
 {\r
+  UINT64  Value1;\r
+  UINT64  Value2;\r
+\r
   ASSERT (EndBit < sizeof (Operand) * 8);\r
   ASSERT (StartBit <= EndBit);\r
-  return Operand |\r
-         (LShiftU64 (OrData, StartBit) & ~LShiftU64 ((UINT64)-2, EndBit));\r
+\r
+  Value1 = LShiftU64 (OrData, StartBit);\r
+  Value2 = LShiftU64 ((UINT64) - 2, EndBit);\r
+\r
+  return Operand | (Value1 & ~Value2);\r
 }\r
 \r
 /**\r
@@ -801,10 +809,16 @@ BitFieldAnd64 (
   IN      UINT64                    AndData\r
   )\r
 {\r
+  UINT64  Value1;\r
+  UINT64  Value2;\r
+  \r
   ASSERT (EndBit < sizeof (Operand) * 8);\r
   ASSERT (StartBit <= EndBit);\r
-  return Operand &\r
-         ~(LShiftU64 (~AndData, StartBit) & ~LShiftU64 ((UINT64)-2, EndBit));\r
+\r
+  Value1 = LShiftU64 (~AndData, StartBit);\r
+  Value2 = LShiftU64 ((UINT64)-2, EndBit);\r
+\r
+  return Operand & ~(Value1 & ~Value2);\r
 }\r
 \r
 /**\r