1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
/*
* arch/i386/libgcc/__muldi3.S
*
* 64*64 = 64 bit unsigned multiplication
*/
.text
.align 4
.globl __muldi3
.type __muldi3,@function
__muldi3:
push %esi
#ifndef REGPARM
movl 8(%esp),%eax
movl %eax,%esi
movl 16(%esp),%ecx
mull %ecx
imull 12(%esp),%ecx
imull 20(%esp),%esi
addl %ecx,%edx
addl %esi,%edx
#else
movl %eax,%esi
push %edx
mull %ecx
imull 8(%esp),%esi
addl %esi,%edx
pop %esi
imull %esi,%ecx
addl %ecx,%edx
#endif
pop %esi
ret
.size __muldi3,.-__muldi3
|