ByteCodeAsm

ghc-7.10.2: The GHC API

Safe Haskell | None
Language | Haskell2010

ByteCodeAsm

Description

ByteCodeLink: Bytecode assembler and linker

Synopsis

- assembleBCOs :: DynFlags -> [ProtoBCO Name] -> [TyCon] -> IO CompiledByteCode
- assembleBCO :: DynFlags -> ProtoBCO Name -> IO UnlinkedBCO
- data CompiledByteCode = ByteCode [UnlinkedBCO] ItblEnv
- data UnlinkedBCO = UnlinkedBCO {
  - unlinkedBCOName :: Name
  - unlinkedBCOArity :: Int
  - unlinkedBCOInstrs :: ByteArray#
  - unlinkedBCOBitmap :: ByteArray#
  - unlinkedBCOLits :: SizedSeq BCONPtr
  - unlinkedBCOPtrs :: SizedSeq BCOPtr
  }
- data BCOPtr
  - = BCOPtrName Name
  - | BCOPtrPrimOp PrimOp
  - | BCOPtrBCO UnlinkedBCO
  - | BCOPtrBreakInfo BreakInfo
  - | BCOPtrArray (MutableByteArray# RealWorld)
- data BCONPtr
  - = BCONPtrWord Word
  - | BCONPtrLbl FastString
  - | BCONPtrItbl Name
- bcoFreeNames :: UnlinkedBCO -> NameSet
- data SizedSeq a
- sizeSS :: SizedSeq a -> Word
- ssElts :: SizedSeq a -> [a]
- iNTERP_STACK_CHECK_THRESH :: Int

# Documentation

assembleBCOs :: DynFlags -> [ProtoBCO Name] -> [TyCon] -> IO CompiledByteCode Source

assembleBCO :: DynFlags -> ProtoBCO Name -> IO UnlinkedBCO Source

data CompiledByteCode Source

Constructors

ByteCode [UnlinkedBCO] ItblEnv |

Instances

Outputable CompiledByteCode |

data UnlinkedBCO Source

Constructors

UnlinkedBCO |
Fields unlinkedBCOName :: Name unlinkedBCOArity :: Int unlinkedBCOInstrs :: ByteArray# unlinkedBCOBitmap :: ByteArray# unlinkedBCOLits :: SizedSeq BCONPtr unlinkedBCOPtrs :: SizedSeq BCOPtr

Instances

Outputable UnlinkedBCO |

data BCOPtr Source

Constructors

BCOPtrName Name |
BCOPtrPrimOp PrimOp |
BCOPtrBCO UnlinkedBCO |
BCOPtrBreakInfo BreakInfo |
BCOPtrArray (MutableByteArray# RealWorld) |

data BCONPtr Source

Constructors

BCONPtrWord Word |
BCONPtrLbl FastString |
BCONPtrItbl Name |

bcoFreeNames :: UnlinkedBCO -> NameSet Source

Finds external references. Remember to remove the names defined by this group of BCOs themselves

data SizedSeq a Source

sizeSS :: SizedSeq a -> Word Source

ssElts :: SizedSeq a -> [a] Source

iNTERP_STACK_CHECK_THRESH :: Int Source