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
22SYM_FUNC_START(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
48SYM_FUNC_END(FPU_div_small)
49

source code of linux/arch/x86/math-emu/div_small.S