Files
system76-edk2/MdePkg/Library/BaseLib/Ia32/MultU64x64.c
vanjeff e5f461a850 1. Remove #ifdef _MSC_EXTENSION_ from all source files
2. Remove #ifdef _GCC_ from all resource files
3. Remove #if 0 from all resource files
4. Remove #ifdef MDE_CPU_IPF and #ifdef MDE_CPU_EBC
5. Remove #progam from Decode.c
6. Remove #ifdef TIANO_EXTENSION_FLAG from source files
7. Remove #ifdef SUPPORT_IPV6, since code base doesn't support IPV6 at all.
8. Remove #ifdef SpecialNowaitVersion from pxe_bc_mtftp.c, since it's only used for test.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2470 6f19259b-4bc3-4df7-8a09-765794883524
2007-03-15 02:33:16 +00:00

35 lines
1.0 KiB
C

/** @file
Calculate the product of a 64-bit integer and another 64-bit integer
Copyright (c) 2006 - 2007, Intel Corporation<BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
UINT64
EFIAPI
InternalMathMultU64x64 (
IN UINT64 Multiplicand,
IN UINT64 Multiplier
)
{
_asm {
mov ebx, dword ptr [Multiplicand + 0]
mov edx, dword ptr [Multiplier + 0]
mov ecx, ebx
mov eax, edx
imul ebx, dword ptr [Multiplier + 4]
imul edx, dword ptr [Multiplicand + 4]
add ebx, edx
mul ecx
add edx, ebx
}
}