aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin (Intel) <hpa@zytor.com>2019-02-27 17:28:41 -0800
committerH. Peter Anvin (Intel) <hpa@zytor.com>2019-02-27 17:28:41 -0800
commitd0feb1cc4f7cb43cfda94bfc57553845bcc12df7 (patch)
treef07b28288b99120c573317060d9a504b3f714e5b
parentfdb3840f1de8b57a17621c3299a75db7ddcbf977 (diff)
downloadsyslinux-d0feb1cc4f7cb43cfda94bfc57553845bcc12df7.tar.gz
syslinux-d0feb1cc4f7cb43cfda94bfc57553845bcc12df7.tar.xz
syslinux-d0feb1cc4f7cb43cfda94bfc57553845bcc12df7.zip
__muldi3.S: fix double pop!
One register would be popped twice - it is good that this never actually got used anywhere (newer gcc's don't seem to need it, at least not in most cases.) Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
-rw-r--r--com32/lib/i386/libgcc/__muldi3.S16
1 files changed, 7 insertions, 9 deletions
diff --git a/com32/lib/i386/libgcc/__muldi3.S b/com32/lib/i386/libgcc/__muldi3.S
index 80e31d43..32733007 100644
--- a/com32/lib/i386/libgcc/__muldi3.S
+++ b/com32/lib/i386/libgcc/__muldi3.S
@@ -11,15 +11,13 @@
__muldi3:
/* i386 */
push %esi
- movl 8(%esp),%ecx
- movl %eax,%esi
- push %edx
- mull %ecx
- imull 12(%esp),%esi
- addl %esi,%edx
- pop %esi
- imull %esi,%ecx
- addl %ecx,%edx
+ movl 8(%esp),%esi
+ movl 12(%esp),%ecx
+ imul %esi,%edx
+ imul %eax,%ecx
+ add %edx,%ecx
+ mul %esi
pop %esi
+ add %ecx,%edx
ret
.size __muldi3,.-__muldi3