foxdec-0.1.0.0: Formally Verified x86-64 Decompilation
Safe HaskellNone
LanguageHaskell2010

Generic.Instruction

Synopsis

Documentation

data GenericInstruction label storage prefix opcode annotation Source #

A generic instruction

Constructors

Instruction 

Fields

  • label :: label

    unique identifier of the instruction: can be an immediate address, or a string label

  • prefix :: Maybe prefix

    optional: prefix, e.g., lock or repz

  • opcode :: opcode

    opcode/mnemonic

  • dest :: Maybe (GenericOperand storage)

    destination operand, possibly none

  • srcs :: [GenericOperand storage]

    source operands, possibly empty

  • annot :: Maybe annotation

    optional: an annotation, such as the instruction size

Instances

Instances details
HasSize Instruction Source # 
Instance details

Defined in X86.Instruction

(Eq label, Eq prefix, Eq opcode, Eq storage, Eq annotation) => Eq (GenericInstruction label storage prefix opcode annotation) Source # 
Instance details

Defined in Generic.Instruction

Methods

(==) :: GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation -> Bool #

(/=) :: GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation -> Bool #

(Ord label, Ord prefix, Ord opcode, Ord storage, Ord annotation) => Ord (GenericInstruction label storage prefix opcode annotation) Source # 
Instance details

Defined in Generic.Instruction

Methods

compare :: GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation -> Ordering #

(<) :: GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation -> Bool #

(<=) :: GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation -> Bool #

(>) :: GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation -> Bool #

(>=) :: GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation -> Bool #

max :: GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation #

min :: GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation -> GenericInstruction label storage prefix opcode annotation #

(Show storage, Show label, Show prefix, Show opcode, Show annotation) => Show (GenericInstruction label storage prefix opcode annotation) Source # 
Instance details

Defined in Generic.Instruction

Methods

showsPrec :: Int -> GenericInstruction label storage prefix opcode annotation -> ShowS #

show :: GenericInstruction label storage prefix opcode annotation -> String #

showList :: [GenericInstruction label storage prefix opcode annotation] -> ShowS #

Generic (GenericInstruction label storage prefix opcode annotation) Source # 
Instance details

Defined in Generic.Instruction

Associated Types

type Rep (GenericInstruction label storage prefix opcode annotation) :: Type -> Type #

Methods

from :: GenericInstruction label storage prefix opcode annotation -> Rep (GenericInstruction label storage prefix opcode annotation) x #

to :: Rep (GenericInstruction label storage prefix opcode annotation) x -> GenericInstruction label storage prefix opcode annotation #

(Serialize label, Serialize storage, Serialize prefix, Serialize opcode, Serialize annotation) => Serialize (GenericInstruction label storage prefix opcode annotation) Source # 
Instance details

Defined in Generic.Instruction

Methods

put :: Putter (GenericInstruction label storage prefix opcode annotation) #

get :: Get (GenericInstruction label storage prefix opcode annotation) #

(NFData label, NFData storage, NFData prefix, NFData opcode, NFData annotation) => NFData (GenericInstruction label storage prefix opcode annotation) Source # 
Instance details

Defined in Generic.Instruction

Methods

rnf :: GenericInstruction label storage prefix opcode annotation -> () #

type Rep (GenericInstruction label storage prefix opcode annotation) Source # 
Instance details

Defined in Generic.Instruction

type Rep (GenericInstruction label storage prefix opcode annotation) = D1 ('MetaData "GenericInstruction" "Generic.Instruction" "foxdec-0.1.0.0-F8J4QQ8bsQELJyhc4kJb0m" 'False) (C1 ('MetaCons "Instruction" 'PrefixI 'True) ((S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 label) :*: (S1 ('MetaSel ('Just "prefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe prefix)) :*: S1 ('MetaSel ('Just "opcode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 opcode))) :*: (S1 ('MetaSel ('Just "dest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (GenericOperand storage))) :*: (S1 ('MetaSel ('Just "srcs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [GenericOperand storage]) :*: S1 ('MetaSel ('Just "annot") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe annotation))))))