fix ARM StgCRun to not save and restore r11/fp register twice
authorKarel Gardas <karel.gardas@centrum.cz>
Tue, 14 Feb 2012 07:03:07 +0000 (08:03 +0100)
committerJoachim Breitner <nomeata@debian.org>
Sat, 16 Jun 2012 10:48:18 +0000 (10:48 +0000)
Gbp-Pq: Name fix-ARM-StgCRun-to-not-save-and-restore-r11-fp-regis

rts/StgCRun.c

index 9ca22d2b12ec0da2219b392b7560ca802ac5ec3b..3654b3336ab01f0d6306982ec6e58621108a2227 100644 (file)
@@ -632,7 +632,7 @@ StgRun(StgFunPtr f, StgRegTable *basereg) {
         /*
          * save callee-saves registers on behalf of the STG code.
          */
-        "stmfd sp!, {r4-r11, fp, ip, lr}\n\t"
+        "stmfd sp!, {r4-r10, fp, ip, lr}\n\t"
 #if !defined(arm_HOST_ARCH_PRE_ARMv6)
         "vstmdb sp!, {d8-d11}\n\t"
 #endif
@@ -669,7 +669,7 @@ StgRun(StgFunPtr f, StgRegTable *basereg) {
 #if !defined(arm_HOST_ARCH_PRE_ARMv6)
         "vldmia sp!, {d8-d11}\n\t"
 #endif
-        "ldmfd sp!, {r4-r11, fp, ip, lr}\n\t"
+        "ldmfd sp!, {r4-r10, fp, ip, lr}\n\t"
       : "=r" (r)
       : "r" (f), "r" (basereg), "i" (RESERVED_C_STACK_BYTES)
 #if !defined(__thumb__)