]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.S
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / OldMdePkg / Library / BaseLib / Ia32 / DivU64x64Remainder.S
diff --git a/OldMdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.S b/OldMdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.S
deleted file mode 100644 (file)
index cac7169..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-#------------------------------------------------------------------------------\r
-#\r
-# Copyright (c) 2006, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution.  The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#\r
-# Module Name:\r
-#\r
-#   DivU64x64Remainder.asm\r
-#\r
-# Abstract:\r
-#\r
-#   Calculate the quotient of a 64-bit integer by a 64-bit integer and returns\r
-#   both the quotient and the remainder\r
-#\r
-#------------------------------------------------------------------------------\r
-\r
-.globl ASM_PFX(InternalMathDivRemU64x32), ASM_PFX(InternalMathDivRemU64x64)\r
-\r
-#------------------------------------------------------------------------------\r
-# UINT64\r
-# EFIAPI\r
-# InternalMathDivRemU64x64 (\r
-#   IN      UINT64                    Dividend,\r
-#   IN      UINT64                    Divisor,\r
-#   OUT     UINT64                    *Remainder    OPTIONAL\r
-#   );\r
-#------------------------------------------------------------------------------\r
-ASM_PFX(InternalMathDivRemU64x64):\r
-    movl    16(%esp), %ecx\r
-    testl   %ecx, %ecx\r
-    jnz     Hard\r
-    movl    20(%esp), %ecx\r
-    jecxz   L1\r
-    and     $0, 4(%ecx)\r
-    movl    %ecx, 16(%esp)\r
-L1:\r
-    jmp     ASM_PFX(InternalMathDivRemU64x32)\r
-Hard:\r
-    push    %ebx\r
-    push    %esi\r
-    push    %edi\r
-    mov     20(%esp), %edx\r
-    mov     16(%esp), %eax\r
-    movl    %edx, %edi\r
-    movl    %eax, %esi\r
-    mov     24(%esp), %ebx\r
-L2:\r
-    shrl    %edx\r
-    rcrl    $1, %eax\r
-    shrdl   $1, %ecx, %ebx\r
-    shrl    %ecx\r
-    jnz     L2\r
-    divl    %ebx\r
-    movl    %eax, %ebx\r
-    movl    28(%esp), %ecx\r
-    mull    24(%esp)\r
-    imull   %ebx, %ecx\r
-    addl    %ecx, %edx\r
-    mov     32(%esp), %ecx\r
-    jc      TooLarge\r
-    cmpl    %edx, %edi\r
-    ja      Correct\r
-    jb      TooLarge\r
-    cmpl    %eax, %esi\r
-    jae     Correct\r
-TooLarge:\r
-    decl    %ebx\r
-    jecxz   Return\r
-    sub     24(%esp), %eax\r
-    sbb     28(%esp), %edx\r
-Correct:\r
-    jecxz   Return\r
-    subl    %eax, %esi\r
-    sbbl    %edx, %edi\r
-    movl    %esi, (%ecx)\r
-    movl    %edi, 4(%ecx)\r
-Return:\r
-    movl    %ebx, %eax\r
-    xorl    %edx, %edx\r
-    pop     %edi\r
-    pop     %esi\r
-    pop     %ebx\r
-    ret\r