X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fghci%2FByteCodeInstr.lhs;h=05b8a1a3f8f74b577dc8a513971cbbed4e727a09;hb=6cfc5a0380bfd2484b35e39ae0afafcbd923755f;hp=7a965a14baa7a2d55492eda5c18ef814db3922bf;hpb=1222d1f1cd463d17cfd3109c5da8234b63117bf1;p=ghc-hetmet.git diff --git a/ghc/compiler/ghci/ByteCodeInstr.lhs b/ghc/compiler/ghci/ByteCodeInstr.lhs index 7a965a1..05b8a1a 100644 --- a/ghc/compiler/ghci/ByteCodeInstr.lhs +++ b/ghc/compiler/ghci/ByteCodeInstr.lhs @@ -19,8 +19,7 @@ import PrimRep ( PrimRep ) import DataCon ( DataCon ) import VarSet ( VarSet ) import PrimOp ( PrimOp ) -import Foreign ( Addr ) - +import GHC.Ptr \end{code} %************************************************************************ @@ -37,7 +36,7 @@ data ProtoBCO a -- what the BCO came from (Either [AnnAlt Id VarSet] (AnnExpr Id VarSet)) - [Addr] -- malloc'd; free when BCO is GCd + [Ptr ()] -- malloc'd; free when BCO is GCd nameOfProtoBCO (ProtoBCO nm insns origin malloced) = nm @@ -57,7 +56,7 @@ data BCInstr | PUSH_AS Name PrimRep -- push alts and BCO_ptr_ret_info -- PrimRep so we know which itbl -- Pushing literals - | PUSH_UBX (Either Literal Addr) + | PUSH_UBX (Either Literal (Ptr ())) Int -- push this int/float/double/addr, NO TAG, on the stack -- Int is # of words to copy from literal pool -- Eitherness reflects the difficulty of dealing with @@ -100,7 +99,7 @@ data BCInstr | JMP LocalLabel -- For doing calls to C (via glue code generated by ByteCodeFFI) - | CCALL Addr -- of the glue code + | CCALL (Ptr ()) -- of the glue code | SWIZZLE Int Int -- to the ptr N words down the stack, -- add M (interpreted as a signed 16-bit entity) @@ -126,7 +125,7 @@ instance Outputable BCInstr where ppr (PUSH_LL o1 o2) = text "PUSH_LL " <+> int o1 <+> int o2 ppr (PUSH_LLL o1 o2 o3) = text "PUSH_LLL" <+> int o1 <+> int o2 <+> int o3 ppr (PUSH_G (Left nm)) = text "PUSH_G " <+> ppr nm - ppr (PUSH_G (Right op)) = text "PUSH_G " <+> text "PrelPrimopWrappers." + ppr (PUSH_G (Right op)) = text "PUSH_G " <+> text "GHC.PrimopWrappers." <> ppr op ppr (PUSH_AS nm pk) = text "PUSH_AS " <+> ppr nm <+> ppr pk