summaryrefslogtreecommitdiffstats
path: root/contrib/syslinux-4.02/com32/lib/libgcc/__muldi3.S
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/syslinux-4.02/com32/lib/libgcc/__muldi3.S')
-rw-r--r--contrib/syslinux-4.02/com32/lib/libgcc/__muldi3.S34
1 files changed, 34 insertions, 0 deletions
diff --git a/contrib/syslinux-4.02/com32/lib/libgcc/__muldi3.S b/contrib/syslinux-4.02/com32/lib/libgcc/__muldi3.S
new file mode 100644
index 0000000..648a88a
--- /dev/null
+++ b/contrib/syslinux-4.02/com32/lib/libgcc/__muldi3.S
@@ -0,0 +1,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