]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/BaseLib/Ia32/MultU64x32.c
1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / EdkIIGlueLib / Library / BaseLib / Ia32 / MultU64x32.c
1 /*++
2
3 Copyright (c) 2004 - 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12
13 Module Name:
14
15 MultU64x32.c
16
17 Abstract:
18
19
20
21 --*/
22
23 #include "BaseLibInternals.h"
24
25 UINT64
26 EFIAPI
27 InternalMathMultU64x32 (
28 IN UINT64 Multiplicand,
29 IN UINT32 Multiplier
30 )
31 {
32 _asm {
33 mov ecx, Multiplier
34 mov eax, ecx
35 imul ecx, dword ptr [Multiplicand + 4] // overflow not detectable
36 mul dword ptr [Multiplicand + 0]
37 add edx, ecx
38 }
39 }
40