1;------------------------------------------------------------------------------
2;
3; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
4; SPDX-License-Identifier: BSD-2-Clause-Patent
5;
6; Module Name:
7;
8;   MultU64x32.nasm
9;
10; Abstract:
11;
12;   Calculate the product of a 64-bit integer and a 32-bit integer
13;
14;------------------------------------------------------------------------------
15
16    SECTION .text
17
18;------------------------------------------------------------------------------
19; UINT64
20; EFIAPI
21; InternalMathMultU64x32 (
22;   IN      UINT64                    Multiplicand,
23;   IN      UINT32                    Multiplier
24;   );
25;------------------------------------------------------------------------------
26global ASM_PFX(InternalMathMultU64x32)
27ASM_PFX(InternalMathMultU64x32):
28    mov     ecx, [esp + 12]
29    mov     eax, ecx
30    imul    ecx, [esp + 8]              ; overflow not detectable
31    mul     dword [esp + 4]
32    add     edx, ecx
33    ret
34
35