summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authordias@cs.tufts.edu <unknown>2010-01-05 21:15:43 +0000
committerdias@cs.tufts.edu <unknown>2010-01-05 21:15:43 +0000
commit5e91c7ce494b63565e58588066c4c72b28e1cd59 (patch)
treec800097e9879f69ae49090f449674b7a511a3316 /compiler/codeGen
parentcf872d0fd1f7b88eaba55d2256e7a05e676e2a9d (diff)
downloadhaskell-5e91c7ce494b63565e58588066c4c72b28e1cd59.tar.gz
Following Simon M's "take newCAF() out from sm_mutex" patch
Diffstat (limited to 'compiler/codeGen')
-rw-r--r--compiler/codeGen/StgCmmBind.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/codeGen/StgCmmBind.hs b/compiler/codeGen/StgCmmBind.hs
index 5af8f341ad..6451840f04 100644
--- a/compiler/codeGen/StgCmmBind.hs
+++ b/compiler/codeGen/StgCmmBind.hs
@@ -605,7 +605,10 @@ link_caf cl_info _is_upd = do
-- so that the garbage collector can find them
-- This must be done *before* the info table pointer is overwritten,
-- because the old info table ptr is needed for reversion
- ; emitRtsCallWithVols rtsPackageId (fsLit "newCAF") [(CmmReg nodeReg,AddrHint)] [node] False
+ ; emitRtsCallWithVols rtsPackageId (fsLit "newCAF")
+ [ (CmmReg (CmmGlobal BaseReg), AddrHint),
+ (CmmReg nodeReg, AddrHint) ]
+ [node] False
-- node is live, so save it.
-- Overwrite the closure with a (static) indirection