Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/x86/math-emu/div_small.S
26439 views
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 [email protected] |
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
SYM_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
48
SYM_FUNC_END(FPU_div_small)
49
50