diff options
author | Ian Lynagh <ian@well-typed.com> | 2013-03-02 13:05:05 +0000 |
---|---|---|
committer | Ian Lynagh <ian@well-typed.com> | 2013-03-02 13:05:05 +0000 |
commit | 0606e6e73b30fb9307fa11dc417f2988c7b9aa48 (patch) | |
tree | 31d4515f6eb5cdf184e90a6db45e4e2ad5b0a62a /rts/StgCRun.c | |
parent | e8b8bb39f99eb2bdbb4cb99906f64919f4de555e (diff) | |
download | haskell-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.
Diffstat (limited to 'rts/StgCRun.c')
-rw-r--r-- | rts/StgCRun.c | 6 |
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; |