Home | History | Annotate | Download | only in Ia32
      1 /**
      2   Calculate the quotient of a 64-bit integer by a 32-bit integer
      3 
      4   Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
      5   This program and the accompanying materials
      6   are licensed and made available under the terms and conditions of the BSD License
      7   which accompanies this distribution.  The full text of the license may be found at
      8   http://opensource.org/licenses/bsd-license.php
      9 
     10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #include "BaseLibInternals.h"
     16 
     17 UINT64
     18 EFIAPI
     19 InternalMathDivU64x32 (
     20   IN      UINT64                    Dividend,
     21   IN      UINT32                    Divisor
     22   )
     23 {
     24   _asm {
     25     mov     eax, dword ptr [Dividend + 4]
     26     mov     ecx, Divisor
     27     xor     edx, edx
     28     div     ecx
     29     push    eax                     ; save quotient on stack
     30     mov     eax, dword ptr [Dividend]
     31     div     ecx
     32     pop     edx                     ; restore high-order dword of the quotient
     33   }
     34 }
     35 
     36