--- /dev/null
+/*++\r
+\r
+Copyright (c) 2004, Intel Corporation \r
+All rights reserved. This program and the accompanying materials \r
+are licensed and made available under the terms and conditions of the BSD License \r
+which accompanies this distribution. The full text of the license may be found at \r
+http://opensource.org/licenses/bsd-license.php \r
+ \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+Module Name:\r
+\r
+ math.c\r
+\r
+Abstract:\r
+\r
+ 64-bit Math worker functions for Intel Itanium(TM) processors.\r
+\r
+--*/\r
+\r
+#include "Tiano.h"\r
+#include "Pei.h"\r
+#include "PeiLib.h"\r
+\r
+UINT64\r
+LShiftU64 (\r
+ IN UINT64 Operand,\r
+ IN UINTN Count\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ This routine allows a 64 bit value to be left shifted by 32 bits and \r
+ returns the shifted value.\r
+ Count is valid up 63. (Only Bits 0-5 is valid for Count)\r
+\r
+Arguments:\r
+\r
+ Operand - Value to be shifted\r
+ Count - Number of times to shift left.\r
+ \r
+Returns:\r
+\r
+ Value shifted left identified by the Count.\r
+\r
+--*/\r
+{\r
+ return Operand << Count;\r
+}\r
+\r
+UINT64\r
+RShiftU64 (\r
+ IN UINT64 Operand,\r
+ IN UINTN Count\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ This routine allows a 64 bit value to be right shifted by 32 bits and returns the \r
+ shifted value.\r
+ Count is valid up 63. (Only Bits 0-5 is valid for Count)\r
+\r
+Arguments:\r
+\r
+ Operand - Value to be shifted\r
+ Count - Number of times to shift right.\r
+ \r
+Returns:\r
+\r
+ Value shifted right identified by the Count.\r
+\r
+--*/\r
+{\r
+ return Operand >> Count;\r
+}\r
+\r
+UINT64\r
+MultU64x32 (\r
+ IN UINT64 Multiplicand,\r
+ IN UINTN Multiplier\r
+ )\r
+/*++ \r
+ \r
+Routine Description:\r
+\r
+ This routine allows a 64 bit value to be multiplied with a 32 bit \r
+ value returns 64bit result.\r
+ No checking if the result is greater than 64bits\r
+\r
+Arguments:\r
+\r
+ Multiplicand - multiplicand\r
+ Multiplier - multiplier\r
+\r
+Returns:\r
+\r
+ Multiplicand * Multiplier\r
+ \r
+--*/\r
+{\r
+ return Multiplicand * Multiplier;\r
+}\r
+\r
+UINT64\r
+DivU64x32 (\r
+ IN UINT64 Dividend,\r
+ IN UINTN Divisor,\r
+ OUT UINTN *Remainder OPTIONAL\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ This routine allows a 64 bit value to be divided with a 32 bit value returns \r
+ 64bit result and the Remainder.\r
+ N.B. only works for 31bit divisors!!\r
+\r
+Arguments:\r
+\r
+ Dividend - dividend\r
+ Divisor - divisor\r
+ Remainder - buffer for remainder\r
+ \r
+Returns:\r
+\r
+ Dividend / Divisor\r
+ Remainder = Dividend mod Divisor\r
+\r
+--*/\r
+{\r
+ if (Remainder) {\r
+ *Remainder = Dividend % Divisor;\r
+ }\r
+\r
+ return Dividend / Divisor;\r
+}\r
+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- math.c\r
-\r
-Abstract:\r
-\r
- 64-bit Math worker functions for Intel Itanium(TM) processors.\r
-\r
---*/\r
-\r
-#include "Tiano.h"\r
-#include "Pei.h"\r
-#include "PeiLib.h"\r
-\r
-UINT64\r
-LShiftU64 (\r
- IN UINT64 Operand,\r
- IN UINTN Count\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- This routine allows a 64 bit value to be left shifted by 32 bits and \r
- returns the shifted value.\r
- Count is valid up 63. (Only Bits 0-5 is valid for Count)\r
-\r
-Arguments:\r
-\r
- Operand - Value to be shifted\r
- Count - Number of times to shift left.\r
- \r
-Returns:\r
-\r
- Value shifted left identified by the Count.\r
-\r
---*/\r
-{\r
- return Operand << Count;\r
-}\r
-\r
-UINT64\r
-RShiftU64 (\r
- IN UINT64 Operand,\r
- IN UINTN Count\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- This routine allows a 64 bit value to be right shifted by 32 bits and returns the \r
- shifted value.\r
- Count is valid up 63. (Only Bits 0-5 is valid for Count)\r
-\r
-Arguments:\r
-\r
- Operand - Value to be shifted\r
- Count - Number of times to shift right.\r
- \r
-Returns:\r
-\r
- Value shifted right identified by the Count.\r
-\r
---*/\r
-{\r
- return Operand >> Count;\r
-}\r
-\r
-UINT64\r
-MultU64x32 (\r
- IN UINT64 Multiplicand,\r
- IN UINTN Multiplier\r
- )\r
-/*++ \r
- \r
-Routine Description:\r
-\r
- This routine allows a 64 bit value to be multiplied with a 32 bit \r
- value returns 64bit result.\r
- No checking if the result is greater than 64bits\r
-\r
-Arguments:\r
-\r
- Multiplicand - multiplicand\r
- Multiplier - multiplier\r
-\r
-Returns:\r
-\r
- Multiplicand * Multiplier\r
- \r
---*/\r
-{\r
- return Multiplicand * Multiplier;\r
-}\r
-\r
-UINT64\r
-DivU64x32 (\r
- IN UINT64 Dividend,\r
- IN UINTN Divisor,\r
- OUT UINTN *Remainder OPTIONAL\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- This routine allows a 64 bit value to be divided with a 32 bit value returns \r
- 64bit result and the Remainder.\r
- N.B. only works for 31bit divisors!!\r
-\r
-Arguments:\r
-\r
- Dividend - dividend\r
- Divisor - divisor\r
- Remainder - buffer for remainder\r
- \r
-Returns:\r
-\r
- Dividend / Divisor\r
- Remainder = Dividend mod Divisor\r
-\r
---*/\r
-{\r
- if (Remainder) {\r
- *Remainder = Dividend % Divisor;\r
- }\r
-\r
- return Dividend / Divisor;\r
-}\r