\r
**/\r
\r
+#include "BaseLibInternals.h"\r
+\r
/**\r
Worker function that returns a bit field from Operand\r
\r
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
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