macaw-base
Copyright(c) Galois Inc 2017-2019
MaintainerJoe Hendrix <jhendrix@galois.com>
Safe HaskellNone
LanguageHaskell2010

Data.Macaw.CFG.Block

Description

This exports the pre-classification term statement and block data types.

Synopsis

Documentation

data Block arch ids Source #

The type for code blocks returned by the disassembler.

The discovery process will attempt to map each block to a suitable ParsedBlock.

Constructors

Block 

Fields

ppBlock :: ArchConstraints arch => Block arch ids -> Doc ann Source #

data TermStmt arch ids Source #

A terminal statement in a block

This is the unclassified definition that is generated directly from the architecture specific disassembler.

Constructors

FetchAndExecute !(RegState (ArchReg arch) (Value arch ids))

Fetch and execute the next instruction from the given processor state.

TranslateError !(RegState (ArchReg arch) (Value arch ids)) !Text

The block ended prematurely due to an error in instruction decoding or translation.

This contains the state of the registers when the translation error occured and the error message recorded.

ArchTermStmt !(ArchTermStmt arch (Value arch ids)) !(RegState (ArchReg arch) (Value arch ids))

An architecture specific term stmt.

The registers include the state of registers just before the terminal statement executes.

Instances

Instances details
ArchConstraints arch => Pretty (TermStmt arch ids) Source # 
Instance details

Defined in Data.Macaw.CFG.Block

Methods

pretty :: TermStmt arch ids -> Doc ann

prettyList :: [TermStmt arch ids] -> Doc ann