1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface CgRetConv where
3 import AbsCSyn(AbstractC, CAddrMode, MagicId)
4 import CLabelInfo(CLabel)
6 import Id(Id, IdDetails)
9 import NameTypes(FullName)
10 import PrimKind(PrimKind)
11 import PrimOps(PrimOp)
13 import TyVar(TyVarTemplate)
14 import UniType(UniType)
16 data MagicId {-# GHC_PRAGMA BaseReg | StkOReg | VanillaReg PrimKind Int# | FloatReg Int# | DoubleReg Int# | TagReg | RetReg | SpA | SuA | SpB | SuB | Hp | HpLim | LivenessReg | ActivityReg | StdUpdRetVecReg | StkStubReg | CurCostCentre | VoidReg #-}
18 data CtrlReturnConvention = VectoredReturn Int | UnvectoredReturn Int
19 data DataReturnConvention = ReturnInHeap | ReturnInRegs [MagicId]
20 data Id {-# GHC_PRAGMA Id Unique UniType IdInfo IdDetails #-}
21 data PrimKind {-# GHC_PRAGMA PtrKind | CodePtrKind | DataPtrKind | RetKind | InfoPtrKind | CostCentreKind | CharKind | IntKind | WordKind | AddrKind | FloatKind | DoubleKind | MallocPtrKind | StablePtrKind | ArrayKind | ByteArrayKind | VoidKind #-}
22 data TyCon {-# GHC_PRAGMA SynonymTyCon Unique FullName Int [TyVarTemplate] UniType Bool | DataTyCon Unique FullName Int [TyVarTemplate] [Id] [Class] Bool | TupleTyCon Int | PrimTyCon Unique FullName Int ([PrimKind] -> PrimKind) | SpecTyCon TyCon [Labda UniType] #-}
23 assignPrimOpResultRegs :: PrimOp -> [MagicId]
24 {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
25 assignRegs :: [MagicId] -> [PrimKind] -> ([MagicId], [PrimKind])
26 {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
27 ctrlReturnConvAlg :: TyCon -> CtrlReturnConvention
28 {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
29 dataReturnConvAlg :: Id -> DataReturnConvention
30 {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
31 dataReturnConvPrim :: PrimKind -> MagicId
32 {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_ #-}
33 makePrimOpArgsRobust :: PrimOp -> [CAddrMode] -> ([CAddrMode], Int, AbstractC)
34 {-# GHC_PRAGMA _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
35 mkLiveRegsBitMask :: [MagicId] -> Int
36 {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
38 {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}