summaryrefslogtreecommitdiff
path: root/compiler/cmm/CmmNode.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/cmm/CmmNode.hs')
-rw-r--r--compiler/cmm/CmmNode.hs23
1 files changed, 15 insertions, 8 deletions
diff --git a/compiler/cmm/CmmNode.hs b/compiler/cmm/CmmNode.hs
index f5a88cebb8..e9b84b568a 100644
--- a/compiler/cmm/CmmNode.hs
+++ b/compiler/cmm/CmmNode.hs
@@ -7,16 +7,14 @@
{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
#endif
-module CmmNode
- ( CmmNode(..)
- , UpdFrameOffset, Convention(..), ForeignConvention(..), ForeignTarget(..)
- , mapExp, mapExpDeep, wrapRecExp, foldExp, foldExpDeep, wrapRecExpf
- , mapExpM, mapExpDeepM, wrapRecExpM
- )
-where
+module CmmNode (
+ CmmNode(..), ForeignHint(..), CmmFormal, CmmActual,
+ UpdFrameOffset, Convention(..), ForeignConvention(..), ForeignTarget(..),
+ mapExp, mapExpDeep, wrapRecExp, foldExp, foldExpDeep, wrapRecExpf,
+ mapExpM, mapExpDeepM, wrapRecExpM
+ ) where
import CmmExpr
-import CmmDecl
import FastString
import ForeignCall
import SMRep
@@ -200,6 +198,9 @@ instance HooplNode CmmNode where
--------------------------------------------------
-- Various helper types
+type CmmActual = CmmExpr
+type CmmFormal = LocalReg
+
type UpdFrameOffset = ByteOff
data Convention
@@ -235,6 +236,12 @@ data ForeignTarget -- The target of a foreign call
CallishMachOp -- Which one
deriving Eq
+data ForeignHint
+ = NoHint | AddrHint | SignedHint
+ deriving( Eq )
+ -- Used to give extra per-argument or per-result
+ -- information needed by foreign calling conventions
+
--------------------------------------------------
-- Instances of register and slot users / definers