[project @ 1996-01-11 14:06:51 by partain]
[ghc-hetmet.git] / ghc / compiler / nativeGen / MachDesc.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface MachDesc where
3 import AbsCSyn(AbstractC, CAddrMode, CExprMacro, CStmtMacro, MagicId, RegRelative, ReturnInfo)
4 import BasicLit(BasicLit)
5 import CLabelInfo(CLabel)
6 import CharSeq(CSeq)
7 import ClosureInfo(ClosureInfo)
8 import CmdLineOpts(GlobalSwitch, SwitchResult)
9 import CostCentre(CostCentre)
10 import HeapOffs(HeapOffset)
11 import Maybes(Labda)
12 import PreludePS(_PackedString)
13 import PreludeRatio(Ratio(..))
14 import Pretty(PprStyle)
15 import PrimKind(PrimKind)
16 import PrimOps(PrimOp)
17 import SMRep(SMRep)
18 import SplitUniq(SUniqSM(..), SplitUniqSupply)
19 import Stix(CodeSegment, StixReg, StixTree, StixTreeList(..))
20 import Unique(Unique)
21 import Unpretty(Unpretty(..))
22 data AbstractC 
23 data CAddrMode 
24 data CExprMacro 
25 data CStmtMacro 
26 data MagicId 
27 data RegRelative 
28 data BasicLit 
29 data CLabel 
30 data CSeq 
31 data GlobalSwitch 
32 data RegLoc   = Save StixTree | Always StixTree
33 data SwitchResult 
34 data HeapOffset 
35 data PprStyle 
36 data PrimKind 
37 data PrimOp 
38 data SMRep 
39 type SUniqSM a = SplitUniqSupply -> a
40 data SplitUniqSupply 
41 data StixTree 
42 type StixTreeList = [StixTree] -> [StixTree]
43 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])
44 data Unique 
45 type Unpretty = CSeq
46 amodeToStix :: Target -> CAddrMode -> StixTree
47 amodeToStix' :: Target -> CAddrMode -> StixTree
48 charLikeClosureSize :: Target -> Int
49 dataHS :: Target -> StixTree
50 fixedHeaderSize :: Target -> Int
51 heapCheck :: Target -> StixTree -> StixTree -> StixTree -> SplitUniqSupply -> [StixTree] -> [StixTree]
52 hpRel :: Target -> HeapOffset -> Int
53 intLikeClosureSize :: Target -> Int
54 macroCode :: Target -> CStmtMacro -> [CAddrMode] -> SplitUniqSupply -> [StixTree] -> [StixTree]
55 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
56 mutHS :: Target -> StixTree
57 primToStix :: Target -> [CAddrMode] -> PrimOp -> [CAddrMode] -> SplitUniqSupply -> [StixTree] -> [StixTree]
58 saveLoc :: Target -> MagicId -> StixTree
59 sizeof :: Target -> PrimKind -> Int
60 stgReg :: Target -> MagicId -> RegLoc
61 varHeaderSize :: Target -> SMRep -> Int
62 volatileRestores :: Target -> [MagicId] -> [StixTree]
63 volatileSaves :: Target -> [MagicId] -> [StixTree]
64