summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <ian@well-typed.com>2013-03-02 13:05:05 +0000
committerIan Lynagh <ian@well-typed.com>2013-03-02 13:05:05 +0000
commit0606e6e73b30fb9307fa11dc417f2988c7b9aa48 (patch)
tree31d4515f6eb5cdf184e90a6db45e4e2ad5b0a62a
parente8b8bb39f99eb2bdbb4cb99906f64919f4de555e (diff)
downloadhaskell-0606e6e73b30fb9307fa11dc417f2988c7b9aa48.tar.gz
Use 'r11' rather than 'fp' on Arm; part of #7707
They're both the same register, and Linux seems happy with both, but ios only accepts r11.
-rw-r--r--rts/StgCRun.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/rts/StgCRun.c b/rts/StgCRun.c
index 127fab6551..e16de75b72 100644
--- a/rts/StgCRun.c
+++ b/rts/StgCRun.c
@@ -665,7 +665,7 @@ StgRun(StgFunPtr f, StgRegTable *basereg) {
/*
* save callee-saves registers on behalf of the STG code.
*/
- "stmfd sp!, {r4-r10, fp, ip, lr}\n\t"
+ "stmfd sp!, {r4-r11, ip, lr}\n\t"
#if !defined(arm_HOST_ARCH_PRE_ARMv6)
"vstmdb sp!, {d8-d11}\n\t"
#endif
@@ -702,7 +702,7 @@ StgRun(StgFunPtr f, StgRegTable *basereg) {
#if !defined(arm_HOST_ARCH_PRE_ARMv6)
"vldmia sp!, {d8-d11}\n\t"
#endif
- "ldmfd sp!, {r4-r10, fp, ip, lr}\n\t"
+ "ldmfd sp!, {r4-r11, ip, lr}\n\t"
: "=r" (r)
: "r" (f), "r" (basereg), "i" (RESERVED_C_STACK_BYTES)
#if !defined(__thumb__)
@@ -718,7 +718,7 @@ StgRun(StgFunPtr f, StgRegTable *basereg) {
includes/stg/MachRegs.h Please note that Haskell code is
compiled by GHC/LLVM into ARM code (not Thumb!), at least
as of February 2012 */
- : "%r4", "%r5", "%r6", "%r8", "%r9", "%r10", "%fp", "%ip", "%lr"
+ : "%r4", "%r5", "%r6", "%r8", "%r9", "%r10", "%11", "%ip", "%lr"
#endif
);
return r;