X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=StdLib%2FLibC%2FCRT%2FIa32%2Fulldvrm.c;fp=StdLib%2FLibC%2FCRT%2FIa32%2Fulldvrm.c;h=0000000000000000000000000000000000000000;hp=2df587e1a40a7e1edc81884ce5750493eefde1d7;hb=964f432b9b0afe103c41c7613fade3e699118afe;hpb=e2d3a25f1a3135221a9c8061e1b8f90245d727eb diff --git a/StdLib/LibC/CRT/Ia32/ulldvrm.c b/StdLib/LibC/CRT/Ia32/ulldvrm.c deleted file mode 100644 index 2df587e1a4..0000000000 --- a/StdLib/LibC/CRT/Ia32/ulldvrm.c +++ /dev/null @@ -1,100 +0,0 @@ -/** @file - 64-bit Math Worker Function. - The 32-bit versions of C compiler generate calls to library routines - to handle 64-bit math. These functions use non-standard calling conventions. - - Copyright (c) 2009 - 2011, Intel Corporation. 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. - -**/ - -#include - - -/* - * Divides a 64-bit signed value by another 64-bit signed value and returns - * the 64-bit signed result and the 64-bit signed remainder. - */ -__declspec(naked) void __cdecl _aulldvrm(void) -{ - // - // Wrapper Implementation over EDKII DivU64x64Remainder() routine - // UINT64 - // EFIAPI - // DivU64x64Remainder ( - // IN UINT64 Dividend, - // IN UINT64 Divisor, - // OUT UINT64 *Remainder - // ) - // - _asm { - ; Original local stack when calling _aulldvrm - ; ----------------- - ; | | - ; |---------------| - ; | | - ; |-- Divisor --| - ; | | - ; |---------------| - ; | | - ; |-- Dividend --| - ; | | - ; |---------------| - ; | ReturnAddr** | - ; ESP---->|---------------| - ; - ; - ; On Exit: - ; EDX:EAX contains the quotient (dividend/divisor) - ; EBX:ECX contains the remainder (divided % divisor) - ; NOTE: this routine removes the parameters from the stack. - ; - - ; - ; Set up the local stack for Remainder pointer - ; - sub esp, 8 - push esp - - ; - ; Set up the local stack for Divisor parameter - ; - mov eax, [esp + 28] - push eax - mov eax, [esp + 28] - push eax - - ; - ; Set up the local stack for Dividend parameter - ; - mov eax, [esp + 28] - push eax - mov eax, [esp + 28] - push eax - - ; - ; Call native DivU64x64Remainder of BaseLib - ; - call DivU64x64Remainder - - ; - ; EDX:EAX contains the quotient (dividend/divisor) - ; Put the Remainder in EBX:ECX - ; - mov ecx, [esp + 20] - mov ebx, [esp + 24] - - ; - ; Adjust stack - ; - add esp, 28 - - ret 16 - } -}