summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwolfgang <unknown>2005-01-10 23:00:53 +0000
committerwolfgang <unknown>2005-01-10 23:00:53 +0000
commit55c604790106d8c8b4a470feefe55e19bbfe7477 (patch)
tree511cdf7c9de979a540ec41f6fc26c7d1fc9c4692
parent7a8bd24665dc2ea63fe1d95ccd52ff506774c21e (diff)
downloadhaskell-55c604790106d8c8b4a470feefe55e19bbfe7477.tar.gz
[project @ 2005-01-10 23:00:53 by wolfgang]
Fix for AIX-like ABIs.
-rw-r--r--ghc/rts/AdjustorAsm.S11
1 files changed, 10 insertions, 1 deletions
diff --git a/ghc/rts/AdjustorAsm.S b/ghc/rts/AdjustorAsm.S
index 7a4dcbf88d..fc56beb517 100644
--- a/ghc/rts/AdjustorAsm.S
+++ b/ghc/rts/AdjustorAsm.S
@@ -124,8 +124,17 @@ adjustorCode:
LOAD r3, HPTR_OFF(r2)
- LOAD r0, WPTR_OFF(r2)
+ LOAD r12, WPTR_OFF(r2)
+#if defined(darwin_TARGET_OS)
+ mtctr r12
+#else
+ LOAD r0, 0(r12)
+ /* The function we're calling will never be a nested function,
+ so we don't load r11.
+ */
mtctr r0
+ LOAD r2, WS(r12)
+#endif
bctrl
LOAD r1, 0(r1)