blob: 8f5025c80ee055dc846553143844690158f6d4fa [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002 .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
22ENTRY(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
Jiri Slabybd6be572017-08-24 10:06:23 +020048ENDPROC(FPU_div_small)