Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/x86/math-emu/div_small.S
10817 views
1
.file "div_small.S"
2
/*---------------------------------------------------------------------------+
3
| div_small.S |
4
| |
5
| Divide a 64 bit integer by a 32 bit integer & return remainder. |
6
| |
7
| Copyright (C) 1992,1995 |
8
| W. Metzenthen, 22 Parker St, Ormond, Vic 3163, |
9
| Australia. E-mail [email protected] |
10
| |
11
| |
12
+---------------------------------------------------------------------------*/
13
14
/*---------------------------------------------------------------------------+
15
| unsigned long FPU_div_small(unsigned long long *x, unsigned long y) |
16
+---------------------------------------------------------------------------*/
17
18
#include "fpu_emu.h"
19
20
.text
21
ENTRY(FPU_div_small)
22
pushl %ebp
23
movl %esp,%ebp
24
25
pushl %esi
26
27
movl PARAM1,%esi /* pointer to num */
28
movl PARAM2,%ecx /* The denominator */
29
30
movl 4(%esi),%eax /* Get the current num msw */
31
xorl %edx,%edx
32
divl %ecx
33
34
movl %eax,4(%esi)
35
36
movl (%esi),%eax /* Get the num lsw */
37
divl %ecx
38
39
movl %eax,(%esi)
40
41
movl %edx,%eax /* Return the remainder in eax */
42
43
popl %esi
44
45
leave
46
ret
47
48
49