root/arch/i386/math-emu/div_small.S

/* [previous][next][first][last][top][bottom][index][help] */
   1         .file   "div_small.S"
   2 /*---------------------------------------------------------------------------+
   3  |  div_small.S                                                              |
   4  |                                                                           |
   5  | Divide a 64 bit integer by a 32 bit integer & return remainder.           |
   6  |                                                                           |
   7  | Copyright (C) 1992,1995                                                   |
   8  |                       W. Metzenthen, 22 Parker St, Ormond, Vic 3163,      |
   9  |                       Australia.  E-mail billm@jacobi.maths.monash.edu.au |
  10  |                                                                           |
  11  |                                                                           |
  12  +---------------------------------------------------------------------------*/
  13 
  14 /*---------------------------------------------------------------------------+
  15  |    unsigned long div_small(unsigned long long *x, unsigned long y)        |
  16  +---------------------------------------------------------------------------*/
  17 
  18 #include "fpu_emu.h"
  19 
  20 .text
  21 ENTRY(div_small)
  22         pushl   %ebp
  23         movl    %esp,%ebp
  24 
  25         pushl   %esi
  26 
  27         movl    PARAM1,%esi     /* pointer to num */
  28         movl    PARAM2,%ecx     /* The denominator */
  29 
  30         movl    4(%esi),%eax    /* Get the current num msw */
  31         xorl    %edx,%edx
  32         divl    %ecx
  33 
  34         movl    %eax,4(%esi)
  35 
  36         movl    (%esi),%eax     /* Get the num lsw */
  37         divl    %ecx
  38 
  39         movl    %eax,(%esi)
  40 
  41         movl    %edx,%eax       /* Return the remainder in eax */
  42 
  43         popl    %esi
  44 
  45         leave
  46         ret
  47 

/* [previous][next][first][last][top][bottom][index][help] */