]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - arch/x86/math-emu/div_small.S
UBUNTU: Ubuntu-5.4.0-117.132
[mirror_ubuntu-focal-kernel.git] / arch / x86 / math-emu / div_small.S
1 /* SPDX-License-Identifier: GPL-2.0 */
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
48 ENDPROC(FPU_div_small)