1 #------------------------------------------------------------------------------
3 # Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
4 # This program and the accompanying materials are licensed and made available
5 # under the terms and conditions of the BSD License which accompanies this
6 # distribution. The full text of the license may be found at
7 # http://opensource.org/licenses/bsd-license.php.
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.
14 # MathReminderU64x64.S
18 # 64-bit Math Worker Function.
19 # Divides a 64-bit unsigned value by another 64-bit unsigned value and returns
20 # the 64-bit unsigned remainder
22 #------------------------------------------------------------------------------
27 ASM_GLOBAL ASM_PFX(__umoddi3), ASM_PFX(DivU64x64Remainder)
29 #------------------------------------------------------------------------------
31 # void __cdecl __umoddi3 (void)
33 #------------------------------------------------------------------------------
35 # Original local stack when calling __umoddi3
48 # ESP---->|---------------|
52 # Set up the local stack for Reminder pointer
58 # Set up the local stack for Divisor parameter
66 # Set up the local stack for Dividend parameter
74 # Call native DivU64x64Remainder of BaseLib
76 jmp ASM_PFX(DivU64x64Remainder)
79 # Put the Reminder in EDX:EAX as return value