X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fghci%2FByteCodeInstr.lhs;h=5239139eb2234d60440a771d7e4314e36772d4c9;hb=e940d0ad629747fd30d1dc318a4c1ab893ac7222;hp=b76207e2e7defb09241b7808ac76937a2ca0e046;hpb=ab22f4e6456820c1b5169d75f5975a94e61f54ce;p=ghc-hetmet.git diff --git a/compiler/ghci/ByteCodeInstr.lhs b/compiler/ghci/ByteCodeInstr.lhs index b76207e..5239139 100644 --- a/compiler/ghci/ByteCodeInstr.lhs +++ b/compiler/ghci/ByteCodeInstr.lhs @@ -11,6 +11,8 @@ module ByteCodeInstr ( #include "HsVersions.h" #include "../includes/MachDeps.h" +import ByteCodeItbls ( ItblPtr ) + import Outputable import Name import Id @@ -38,7 +40,7 @@ data ProtoBCO a -- what the BCO came from protoBCOExpr :: Either [AnnAlt Id VarSet] (AnnExpr Id VarSet), -- malloc'd pointers - protoBCOPtrs :: [Ptr ()] + protoBCOPtrs :: [Either ItblPtr (Ptr ())] } type LocalLabel = Int @@ -171,6 +173,8 @@ instance Outputable BCInstr where ppr (ALLOC_PAP arity sz) = text "ALLOC_PAP " <+> int arity <+> int sz ppr (MKAP offset sz) = text "MKAP " <+> int sz <+> text "words," <+> int offset <+> text "stkoff" + ppr (MKPAP offset sz) = text "MKPAP " <+> int sz <+> text "words," + <+> int offset <+> text "stkoff" ppr (UNPACK sz) = text "UNPACK " <+> int sz ppr (PACK dcon sz) = text "PACK " <+> ppr dcon <+> ppr sz ppr (LABEL lab) = text "__" <> int lab <> colon @@ -182,16 +186,16 @@ instance Outputable BCInstr where ppr (TESTEQ_D d lab) = text "TESTEQ_D" <+> double d <+> text "__" <> int lab ppr (TESTLT_P i lab) = text "TESTLT_P" <+> int i <+> text "__" <> int lab ppr (TESTEQ_P i lab) = text "TESTEQ_P" <+> int i <+> text "__" <> int lab - ppr (JMP lab) = text "JMP" <+> int lab ppr CASEFAIL = text "CASEFAIL" - ppr ENTER = text "ENTER" - ppr RETURN = text "RETURN" - ppr (RETURN_UBX pk) = text "RETURN_UBX " <+> ppr pk + ppr (JMP lab) = text "JMP" <+> int lab ppr (CCALL off marshall_addr) = text "CCALL " <+> int off <+> text "marshall code at" <+> text (show marshall_addr) ppr (SWIZZLE stkoff n) = text "SWIZZLE " <+> text "stkoff" <+> int stkoff <+> text "by" <+> int n + ppr ENTER = text "ENTER" + ppr RETURN = text "RETURN" + ppr (RETURN_UBX pk) = text "RETURN_UBX " <+> ppr pk -- ----------------------------------------------------------------------------- -- The stack use, in words, of each bytecode insn. These _must_ be