Following Simon M's "take newCAF() out from sm_mutex" patch
authordias@cs.tufts.edu <unknown>
Tue, 5 Jan 2010 21:15:43 +0000 (21:15 +0000)
committerdias@cs.tufts.edu <unknown>
Tue, 5 Jan 2010 21:15:43 +0000 (21:15 +0000)
compiler/codeGen/StgCmmBind.hs

index 5af8f34..6451840 100644 (file)
@@ -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