1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
3 import AbsCSyn(MagicId)
4 import CLabelInfo(CLabel)
6 import PreludePS(_PackedString)
7 import PreludeRatio(Ratio(..))
8 import PrimKind(PrimKind)
10 import SplitUniq(SUniqSM(..), SplitUniqSupply)
11 import UniType(UniType)
15 data CodeSegment = DataSegment | TextSegment
18 type SUniqSM a = SplitUniqSupply -> a
20 data StixReg = StixMagicId MagicId | StixTemp Unique PrimKind
21 data StixTree = StSegment CodeSegment | StInt Integer | StDouble (Ratio Integer) | StString _PackedString | StLitLbl CSeq | StLitLit _PackedString | StCLbl CLabel | StReg StixReg | StIndex PrimKind StixTree StixTree | StInd PrimKind StixTree | StAssign PrimKind StixTree StixTree | StLabel CLabel | StFunBegin CLabel | StFunEnd CLabel | StJump StixTree | StFallThrough CLabel | StCondJump CLabel StixTree | StData PrimKind [StixTree] | StPrim PrimOp [StixTree] | StCall _PackedString PrimKind [StixTree] | StComment _PackedString
22 type StixTreeList = [StixTree] -> [StixTree]
24 getUniqLabelNCG :: SplitUniqSupply -> CLabel
25 sStLitLbl :: _PackedString -> StixTree
26 stgBaseReg :: StixTree
29 stgLivenessReg :: StixTree
34 stgStdUpdRetVecReg :: StixTree
35 stgStkOReg :: StixTree
36 stgStkStubReg :: StixTree
40 instance Eq CodeSegment