make the smp way RTS-only, normal libraries now work with -smp
[ghc-hetmet.git] / ghc / compiler / ghci / ByteCodeInstr.lhs
index 05c4fe4..7bd4408 100644 (file)
@@ -17,11 +17,10 @@ import Id           ( Id )
 import CoreSyn
 import PprCore         ( pprCoreExpr, pprCoreAlt )
 import Literal         ( Literal )
-import PrimRep         ( PrimRep )
 import DataCon         ( DataCon )
 import VarSet          ( VarSet )
 import PrimOp          ( PrimOp )
-import SMRep           ( StgWord )
+import SMRep           ( StgWord, CgRep )
 import GHC.Ptr
 
 -- ----------------------------------------------------------------------------
@@ -59,7 +58,7 @@ data BCInstr
 
    -- Push an alt continuation
    | PUSH_ALTS          (ProtoBCO Name)
-   | PUSH_ALTS_UNLIFTED (ProtoBCO Name) PrimRep
+   | PUSH_ALTS_UNLIFTED (ProtoBCO Name) CgRep
 
    -- Pushing literals
    | PUSH_UBX  (Either Literal (Ptr ())) Int
@@ -84,14 +83,14 @@ data BCInstr
    | PUSH_APPLY_PPPP
    | PUSH_APPLY_PPPPP
    | PUSH_APPLY_PPPPPP
-   | PUSH_APPLY_PPPPPPP
 
    | SLIDE     Int{-this many-} Int{-down by this much-}
 
    -- To do with the heap
    | ALLOC_AP  Int     -- make an AP with this many payload words
    | ALLOC_PAP Int Int -- make a PAP with this arity / payload words
-   | MKAP      Int{-ptr to AP/PAP is this far down stack-} Int{-# words-}
+   | MKAP      Int{-ptr to AP is this far down stack-} Int{-# words-}
+   | MKPAP     Int{-ptr to PAP is this far down stack-} Int{-# words-}
    | UNPACK    Int     -- unpack N words from t.o.s Constr
    | PACK      DataCon Int
                        -- after assembly, the DataCon is an index into the
@@ -125,7 +124,7 @@ data BCInstr
    -- To Infinity And Beyond
    | ENTER
    | RETURN            -- return a lifted value
-   | RETURN_UBX PrimRep -- return an unlifted value, here's its rep
+   | RETURN_UBX CgRep -- return an unlifted value, here's its rep
 
 -- -----------------------------------------------------------------------------
 -- Printing bytecode instructions
@@ -165,7 +164,6 @@ instance Outputable BCInstr where
    ppr PUSH_APPLY_PPPP         = text "PUSH_APPLY_PPPP"
    ppr PUSH_APPLY_PPPPP                = text "PUSH_APPLY_PPPPP"
    ppr PUSH_APPLY_PPPPPP       = text "PUSH_APPLY_PPPPPP"
-   ppr PUSH_APPLY_PPPPPPP      = text "PUSH_APPLY_PPPPPPP"
 
    ppr (SLIDE n d)           = text "SLIDE   " <+> int n <+> int d
    ppr (ALLOC_AP sz)         = text "ALLOC_AP   " <+> int sz
@@ -229,7 +227,6 @@ bciStackUse PUSH_APPLY_PPP{}          = 1
 bciStackUse PUSH_APPLY_PPPP{}    = 1
 bciStackUse PUSH_APPLY_PPPPP{}   = 1
 bciStackUse PUSH_APPLY_PPPPPP{}          = 1
-bciStackUse PUSH_APPLY_PPPPPPP{}  = 1
 bciStackUse ALLOC_AP{}            = 1
 bciStackUse ALLOC_PAP{}           = 1
 bciStackUse (UNPACK sz)           = sz
@@ -254,5 +251,6 @@ bciStackUse SWIZZLE{}         = 0
 -- so can't use this info.  Not that it matters much.
 bciStackUse SLIDE{}              = 0
 bciStackUse MKAP{}               = 0
+bciStackUse MKPAP{}              = 0
 bciStackUse PACK{}               = 1 -- worst case is PACK 0 words
 \end{code}