/* | |
* 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 |