diff options
author | Ian Lynagh <ian@well-typed.com> | 2012-09-12 12:37:01 +0100 |
---|---|---|
committer | Ian Lynagh <ian@well-typed.com> | 2012-09-12 12:37:01 +0100 |
commit | 44b5f471a314d964948c38684ce74b7a87df4ed8 (patch) | |
tree | 075f88991983d976ad13714da61b9773a6ca0a02 /compiler/cmm | |
parent | f611396a581e733c41cee41750c95675bdb64961 (diff) | |
download | haskell-44b5f471a314d964948c38684ce74b7a87df4ed8.tar.gz |
Pass DynFlags down to gcWord
Diffstat (limited to 'compiler/cmm')
-rw-r--r-- | compiler/cmm/CmmExpr.hs | 7 | ||||
-rw-r--r-- | compiler/cmm/CmmLayoutStack.hs | 4 | ||||
-rw-r--r-- | compiler/cmm/CmmParse.y | 2 | ||||
-rw-r--r-- | compiler/cmm/CmmType.hs | 4 | ||||
-rw-r--r-- | compiler/cmm/CmmUtils.hs | 2 | ||||
-rw-r--r-- | compiler/cmm/MkGraph.hs | 2 |
6 files changed, 11 insertions, 10 deletions
diff --git a/compiler/cmm/CmmExpr.hs b/compiler/cmm/CmmExpr.hs index 3387b3f470..128eb1ca62 100644 --- a/compiler/cmm/CmmExpr.hs +++ b/compiler/cmm/CmmExpr.hs @@ -133,7 +133,7 @@ cmmLitType dflags (CmmHighStackMark) = bWord dflags cmmLabelType :: DynFlags -> CLabel -> CmmType cmmLabelType dflags lbl - | isGcPtrLabel lbl = gcWord + | isGcPtrLabel lbl = gcWord dflags | otherwise = bWord dflags cmmExprWidth :: DynFlags -> CmmExpr -> Width @@ -415,11 +415,12 @@ node :: GlobalReg node = VanillaReg 1 VGcPtr globalRegType :: DynFlags -> GlobalReg -> CmmType -globalRegType _ (VanillaReg _ VGcPtr) = gcWord +globalRegType dflags (VanillaReg _ VGcPtr) = gcWord dflags globalRegType dflags (VanillaReg _ VNonGcPtr) = bWord dflags globalRegType _ (FloatReg _) = cmmFloat W32 globalRegType _ (DoubleReg _) = cmmFloat W64 globalRegType _ (LongReg _) = cmmBits W64 -globalRegType _ Hp = gcWord -- The initialiser for all +globalRegType dflags Hp = gcWord dflags + -- The initialiser for all -- dynamically allocated closures globalRegType dflags _ = bWord dflags diff --git a/compiler/cmm/CmmLayoutStack.hs b/compiler/cmm/CmmLayoutStack.hs index 27054bb8b3..0ddbfb6227 100644 --- a/compiler/cmm/CmmLayoutStack.hs +++ b/compiler/cmm/CmmLayoutStack.hs @@ -916,8 +916,8 @@ lowerSafeForeignCall dflags block id <- newTemp (bWord dflags) new_base <- newTemp (cmmRegType dflags (CmmGlobal BaseReg)) let (caller_save, caller_load) = callerSaveVolatileRegs dflags - load_tso <- newTemp gcWord - load_stack <- newTemp gcWord + load_tso <- newTemp (gcWord dflags) + load_stack <- newTemp (gcWord dflags) let suspend = saveThreadState dflags <*> caller_save <*> mkMiddle (callSuspendThread id intrbl) diff --git a/compiler/cmm/CmmParse.y b/compiler/cmm/CmmParse.y index d7df52a566..bfde123fd5 100644 --- a/compiler/cmm/CmmParse.y +++ b/compiler/cmm/CmmParse.y @@ -611,7 +611,7 @@ typenot8 :: { CmmType } | 'bits64' { b64 } | 'float32' { f32 } | 'float64' { f64 } - | 'gcptr' { gcWord } + | 'gcptr' {% do dflags <- getDynFlags; return $ gcWord dflags } { section :: String -> Section section "text" = Text diff --git a/compiler/cmm/CmmType.hs b/compiler/cmm/CmmType.hs index db5db9bf96..4c5d6b1138 100644 --- a/compiler/cmm/CmmType.hs +++ b/compiler/cmm/CmmType.hs @@ -102,8 +102,8 @@ bWord _ = cmmBits wordWidth bHalfWord :: DynFlags -> CmmType bHalfWord dflags = cmmBits (halfWordWidth dflags) -gcWord :: CmmType -gcWord = CmmType GcPtrCat wordWidth +gcWord :: DynFlags -> CmmType +gcWord _ = CmmType GcPtrCat wordWidth cInt, cLong :: CmmType cInt = cmmBits cIntWidth diff --git a/compiler/cmm/CmmUtils.hs b/compiler/cmm/CmmUtils.hs index bc092177b1..07130f336b 100644 --- a/compiler/cmm/CmmUtils.hs +++ b/compiler/cmm/CmmUtils.hs @@ -89,7 +89,7 @@ import Hoopl primRepCmmType :: DynFlags -> PrimRep -> CmmType primRepCmmType _ VoidRep = panic "primRepCmmType:VoidRep" -primRepCmmType _ PtrRep = gcWord +primRepCmmType dflags PtrRep = gcWord dflags primRepCmmType dflags IntRep = bWord dflags primRepCmmType dflags WordRep = bWord dflags primRepCmmType _ Int64Rep = b64 diff --git a/compiler/cmm/MkGraph.hs b/compiler/cmm/MkGraph.hs index 6bcdcaa966..d9dfb42cbe 100644 --- a/compiler/cmm/MkGraph.hs +++ b/compiler/cmm/MkGraph.hs @@ -231,7 +231,7 @@ mkReturn dflags e actuals updfr_off = mkReturnSimple :: DynFlags -> [CmmActual] -> UpdFrameOffset -> CmmAGraph mkReturnSimple dflags actuals updfr_off = mkReturn dflags e actuals updfr_off - where e = CmmLoad (CmmStackSlot Old updfr_off) gcWord + where e = CmmLoad (CmmStackSlot Old updfr_off) (gcWord dflags) mkBranch :: BlockId -> CmmAGraph mkBranch bid = mkLast (CmmBranch bid) |