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