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