From 2fc9d9ad8fb6df099eabf40247cd32e0f8b48124 Mon Sep 17 00:00:00 2001
From: bwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 17 Nov 2006 22:40:02 +0000
Subject: [PATCH] 	* config/xtensa/lib1funcs.asm (__umulsidi3): Restore
 a0 on exit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118946 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog                   | 4 ++++
 gcc/config/xtensa/lib1funcs.asm | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 12c61b79200b..6466bad462ce 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2006-11-17  Bob Wilson  <bob.wilson@acm.org>
+
+	* config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
+
 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
 
 	* tree-vrp.c (execute_vrp): Do not update current_loops.
diff --git a/gcc/config/xtensa/lib1funcs.asm b/gcc/config/xtensa/lib1funcs.asm
index 69d51a7551c0..9b9efa87be7e 100644
--- a/gcc/config/xtensa/lib1funcs.asm
+++ b/gcc/config/xtensa/lib1funcs.asm
@@ -323,6 +323,10 @@ __umulsidi3:
 
 #endif /* !MUL32_HIGH */
 
+#if !XCHAL_HAVE_MUL16 && !XCHAL_HAVE_MUL32 && !XCHAL_HAVE_MAC16
+	/* Restore the original return address.  */
+	l32i	a0, sp, 0
+#endif
 	leaf_return
 
 #if !XCHAL_HAVE_MUL16 && !XCHAL_HAVE_MUL32 && !XCHAL_HAVE_MAC16
-- 
GitLab