ghc-8.2.2: The GHC API

Safe Haskell | None
Language | Haskell2010

ByteCodeInstr

Description

ByteCodeInstrs: Bytecode instruction definitions

# Documentation

data BCInstr #

Constructors

STKCHECK Word |
PUSH_L !Word16 |
PUSH_LL !Word16 !Word16 |
PUSH_LLL !Word16 !Word16 !Word16 |
PUSH_G Name |
PUSH_PRIMOP PrimOp |
PUSH_BCO (ProtoBCO Name) |
PUSH_ALTS (ProtoBCO Name) |
PUSH_ALTS_UNLIFTED (ProtoBCO Name) ArgRep |
PUSH_UBX Literal Word16 |
PUSH_APPLY_N |
PUSH_APPLY_V |
PUSH_APPLY_F |
PUSH_APPLY_D |
PUSH_APPLY_L |
PUSH_APPLY_P |
PUSH_APPLY_PP |
PUSH_APPLY_PPP |
PUSH_APPLY_PPPP |
PUSH_APPLY_PPPPP |
PUSH_APPLY_PPPPPP |
SLIDE Word16 Word16 |
ALLOC_AP !Word16 |
ALLOC_AP_NOUPD !Word16 |
ALLOC_PAP !Word16 !Word16 |
MKAP !Word16 !Word16 |
MKPAP !Word16 !Word16 |
UNPACK !Word16 |
PACK DataCon !Word16 |
LABEL LocalLabel |
TESTLT_I Int LocalLabel |
TESTEQ_I Int LocalLabel |
TESTLT_W Word LocalLabel |
TESTEQ_W Word LocalLabel |
TESTLT_F Float LocalLabel |
TESTEQ_F Float LocalLabel |
TESTLT_D Double LocalLabel |
TESTEQ_D Double LocalLabel |
TESTLT_P Word16 LocalLabel |
TESTEQ_P Word16 LocalLabel |
CASEFAIL |
JMP LocalLabel |
CCALL Word16 (RemotePtr C_ffi_cif) Word16 |
SWIZZLE Word16 Word16 |
ENTER |
RETURN |
RETURN_UBX ArgRep |
BRK_FUN Word16 Unique (RemotePtr CostCentre) |

Instances

Outputable BCInstr # |
Methods ppr :: BCInstr -> SDoc # pprPrec :: Rational -> BCInstr -> SDoc #

data ProtoBCO a #

Constructors

ProtoBCO |

Fields

- protoBCOName :: a
- protoBCOInstrs :: [BCInstr]
- protoBCOBitmap :: [StgWord]
- protoBCOBitmapSize :: Word16
- protoBCOArity :: Int
- protoBCOExpr :: Either [AnnAlt Id DVarSet] (AnnExpr Id DVarSet)
- protoBCOFFIs :: [FFIInfo]

Instances

Outputable a => Outputable (ProtoBCO a) # |
Methods ppr :: ProtoBCO a -> SDoc # pprPrec :: Rational -> ProtoBCO a -> SDoc #

bciStackUse :: BCInstr -> Word #