CodeSegment(..), StixReg(..), StixTree(..), StixTreeList,
pprStixTrees, pprStixTree, ppStixReg,
stixCountTempUses, stixSubst,
- DestInfo(..),
+ DestInfo(..), hasDestInfo,
stgBaseReg, stgNode, stgSp, stgSu, stgSpLim,
stgHp, stgHpLim, stgTagReg, stgR9, stgR10,
import UniqSupply ( UniqSupply, splitUniqSupply, uniqFromSupply,
UniqSM, thenUs, returnUs, getUniqueUs )
import Outputable
+import FastTypes
\end{code}
Here is the tag at the nodes of our @StixTree@. Notice its
= NoDestInfo -- no supplied dests; infer from context
| DestInfo [CLabel] -- precisely these dests and no others
+hasDestInfo NoDestInfo = False
+hasDestInfo (DestInfo _) = True
+
pprDests :: DestInfo -> SDoc
pprDests NoDestInfo = text "NoDestInfo"
pprDests (DestInfo dsts) = brack (hsep (map pprCLabel dsts))
ppMId BaseReg = text "BaseReg"
ppMId (VanillaReg kind n) = hcat [pprPrimRep kind, text "IntReg(",
- int (I# n), char ')']
-ppMId (FloatReg n) = hcat [text "FltReg(", int (I# n), char ')']
-ppMId (DoubleReg n) = hcat [text "DblReg(", int (I# n), char ')']
+ int (iBox n), char ')']
+ppMId (FloatReg n) = hcat [text "FltReg(", int (iBox n), char ')']
+ppMId (DoubleReg n) = hcat [text "DblReg(", int (iBox n), char ')']
ppMId (LongReg kind n) = hcat [pprPrimRep kind, text "LongReg(",
- int (I# n), char ')']
+ int (iBox n), char ')']
ppMId Sp = text "Sp"
ppMId Su = text "Su"
ppMId SpLim = text "SpLim"
stgHpLim = StReg (StixMagicId HpLim)
stgCurrentTSO = StReg (StixMagicId CurrentTSO)
stgCurrentNursery = StReg (StixMagicId CurrentNursery)
-stgR9 = StReg (StixMagicId (VanillaReg WordRep ILIT(9)))
-stgR10 = StReg (StixMagicId (VanillaReg WordRep ILIT(10)))
+stgR9 = StReg (StixMagicId (VanillaReg WordRep (_ILIT 9)))
+stgR10 = StReg (StixMagicId (VanillaReg WordRep (_ILIT 10)))
getNatLabelNCG :: NatM CLabel
getNatLabelNCG