Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6
[linux-2.6] / arch / i386 / math-emu / div_small.S
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 FPU_div_small(unsigned long long *x, unsigned long y)    |
16  +---------------------------------------------------------------------------*/
17
18 #include "fpu_emu.h"
19
20 .text
21 ENTRY(FPU_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