\section[CgConTbls]{Info tables and update bits for constructors}
\begin{code}
-#include "HsVersions.h"
-
module CgConTbls ( genStaticConBits ) where
-IMP_Ubiq(){-uitous-}
+#include "HsVersions.h"
import AbsCSyn
import CgMonad
import AbsCUtils ( mkAbsCStmts, mkAbstractCs, magicIdPrimRep )
-import CgCompInfo ( uF_UPDATEE )
+import Constants ( uF_UPDATEE )
import CgHeapery ( heapCheck, allocDynClosure )
-import CgRetConv ( mkLiveRegsMask,
- dataReturnConvAlg, ctrlReturnConvAlg,
+import CgRetConv ( dataReturnConvAlg, ctrlReturnConvAlg,
CtrlReturnConvention(..),
DataReturnConvention(..)
)
import ClosureInfo ( layOutStaticClosure, layOutDynCon,
layOutPhantomClosure, closurePtrsSize,
fitsMinUpdSize, mkConLFInfo,
- infoTableLabelFromCI, dataConLiveness
+ infoTableLabelFromCI, dataConLiveness,
+ ClosureInfo
)
-import CostCentre ( dontCareCostCentre )
-import FiniteMap ( fmToList )
-import HeapOffs ( zeroOff, SYN_IE(VirtualHeapOffset) )
+import CostCentre ( dontCareCostCentre, CostCentre )
+import FiniteMap ( fmToList, FiniteMap )
+import HeapOffs ( zeroOff, VirtualHeapOffset )
import Id ( dataConTag, dataConRawArgTys,
dataConNumFields, fIRST_TAG,
emptyIdSet,
- GenId{-instance NamedThing-}
+ GenId{-instance NamedThing-}, Id
)
-import Name ( nameOf, origName )
-import PrelInfo ( maybeIntLikeTyCon )
+import Name ( getOccString )
import PrimRep ( getPrimRepSize, PrimRep(..) )
-import TyCon ( tyConDataCons, mkSpecTyCon )
-import Type ( typePrimRep )
+import TyCon ( tyConDataCons, mkSpecTyCon, TyCon )
+import Type ( typePrimRep, Type )
import Util ( panic )
mkSameSpecCon = panic "CgConTbls.mkSameSpecCon (ToDo)"
body_code))
entry_addr = CLbl entry_label CodePtrRep
- con_descr = _UNPK_ (nameOf (origName "con_descr" data_con))
+ con_descr = getOccString data_con
closure_code = CClosureInfoAndCode closure_info body Nothing
stdUpd con_descr
phantom_ci = layOutPhantomClosure data_con (mkConLFInfo data_con)
- con_descr = _UNPK_ (nameOf (origName "con_descr2" data_con))
+ con_descr = getOccString data_con
con_arity = dataConNumFields data_con