]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/30192 ([arm] Wrong sp value on exit after calling __floatdidf or __float...
authorRichard Earnshaw <rearnsha@arm.com>
Thu, 13 Dec 2007 01:03:53 +0000 (01:03 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Thu, 13 Dec 2007 01:03:53 +0000 (01:03 +0000)
2007-12-13  Richard Earnshaw  <rearnsha@arm.com>

PR target/30192
* config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
exit when using hard FPA.
* config/arm/ieee754-df.S (floatdidf): Likewise.

From-SVN: r130800

gcc/ChangeLog
gcc/config/arm/ieee754-df.S

index 7ce7d8c25dcf10f1b4c7fff218b4f01208a640a3..32dbb6e2cfbfb5b122f3617da675fe8a7b781f63 100644 (file)
@@ -1,3 +1,10 @@
+2007-12-13  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/30192
+       * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
+       exit when using hard FPA.
+       * config/arm/ieee754-df.S (floatdidf): Likewise.
+
 2007-12-12  Jakub Jelinek  <jakub@redhat.com>
 
        PR bootstrap/30589
index 76cbb6e171137381db767021a0a0e2a8e2edadbc..b866e67b4813a4d239db56a57290b14570630240 100644 (file)
@@ -512,7 +512,8 @@ ARM_FUNC_ALIAS aeabi_ul2d floatundidf
        @ we can return the result in f0 as well as in r0/r1 for backwards
        @ compatibility.
        adr     ip, LSYM(f0_ret)
-       do_push {r4, r5, ip, lr}
+       @ Push pc as well so that RETLDM works correctly.
+       do_push {r4, r5, ip, lr, pc}
 #else
        do_push {r4, r5, lr}
 #endif
@@ -537,7 +538,8 @@ ARM_FUNC_ALIAS aeabi_l2d floatdidf
        @ we can return the result in f0 as well as in r0/r1 for backwards
        @ compatibility.
        adr     ip, LSYM(f0_ret)
-       do_push {r4, r5, ip, lr}
+       @ Push pc as well so that RETLDM works correctly.
+       do_push {r4, r5, ip, lr, pc}
 #else
        do_push {r4, r5, lr}
 #endif