{-# GHC_PRAGMA INTERFACE VERSION 5 #-} interface MachDesc where import AbsCSyn(AbstractC, CAddrMode, CExprMacro, CStmtMacro, MagicId, RegRelative, ReturnInfo) import BasicLit(BasicLit) import CLabelInfo(CLabel) import CharSeq(CSeq) import ClosureInfo(ClosureInfo) import CmdLineOpts(GlobalSwitch, SwitchResult) import CostCentre(CostCentre) import HeapOffs(HeapOffset) import Maybes(Labda) import PreludePS(_PackedString) import PreludeRatio(Ratio(..)) import Pretty(PprStyle) import PrimKind(PrimKind) import PrimOps(PrimOp) import SMRep(SMRep) import SplitUniq(SUniqSM(..), SplitUniqSupply) import Stix(CodeSegment, StixReg, StixTree, StixTreeList(..)) import Unique(Unique) import Unpretty(Unpretty(..)) data AbstractC data CAddrMode data CExprMacro data CStmtMacro data MagicId data RegRelative data BasicLit data CLabel data CSeq data GlobalSwitch data RegLoc = Save StixTree | Always StixTree data SwitchResult data HeapOffset data PprStyle data PrimKind data PrimOp data SMRep type SUniqSM a = SplitUniqSupply -> a data SplitUniqSupply data StixTree type StixTreeList = [StixTree] -> [StixTree] data Target = Target Int (SMRep -> Int) (MagicId -> RegLoc) (PrimKind -> Int) (HeapOffset -> Int) (CAddrMode -> StixTree) (CAddrMode -> StixTree) ([MagicId] -> [StixTree], [MagicId] -> [StixTree], Int, Int, StixTree, StixTree, [CAddrMode] -> PrimOp -> [CAddrMode] -> SplitUniqSupply -> [StixTree] -> [StixTree], CStmtMacro -> [CAddrMode] -> SplitUniqSupply -> [StixTree] -> [StixTree], StixTree -> StixTree -> StixTree -> SplitUniqSupply -> [StixTree] -> [StixTree]) data Unique type Unpretty = CSeq amodeToStix :: Target -> CAddrMode -> StixTree amodeToStix' :: Target -> CAddrMode -> StixTree charLikeClosureSize :: Target -> Int dataHS :: Target -> StixTree fixedHeaderSize :: Target -> Int heapCheck :: Target -> StixTree -> StixTree -> StixTree -> SplitUniqSupply -> [StixTree] -> [StixTree] hpRel :: Target -> HeapOffset -> Int intLikeClosureSize :: Target -> Int macroCode :: Target -> CStmtMacro -> [CAddrMode] -> SplitUniqSupply -> [StixTree] -> [StixTree] mkTarget :: Int -> (SMRep -> Int) -> (MagicId -> RegLoc) -> (PrimKind -> Int) -> (HeapOffset -> Int) -> (CAddrMode -> StixTree) -> (CAddrMode -> StixTree) -> ([MagicId] -> [StixTree], [MagicId] -> [StixTree], Int, Int, StixTree, StixTree, [CAddrMode] -> PrimOp -> [CAddrMode] -> SplitUniqSupply -> [StixTree] -> [StixTree], CStmtMacro -> [CAddrMode] -> SplitUniqSupply -> [StixTree] -> [StixTree], StixTree -> StixTree -> StixTree -> SplitUniqSupply -> [StixTree] -> [StixTree]) -> Target mutHS :: Target -> StixTree primToStix :: Target -> [CAddrMode] -> PrimOp -> [CAddrMode] -> SplitUniqSupply -> [StixTree] -> [StixTree] saveLoc :: Target -> MagicId -> StixTree sizeof :: Target -> PrimKind -> Int stgReg :: Target -> MagicId -> RegLoc varHeaderSize :: Target -> SMRep -> Int volatileRestores :: Target -> [MagicId] -> [StixTree] volatileSaves :: Target -> [MagicId] -> [StixTree]