C# Class Reko.Core.ProcessorState

ProcessorState simulates the state of the processor and a part of the stack during scanning.
Inheritance: EvaluationContext
Afficher le fichier Open project: uxmal/reko Class Usage Examples

Méthodes publiques

Méthode Description
Clone ( ) : ProcessorState
GetDefiningExpression ( Identifier id ) : Expression
GetRegister ( RegisterStorage r ) : Constant
GetValue ( Application appl ) : Expression
GetValue ( Identifier id ) : Expression
GetValue ( MemoryAccess access ) : Expression
GetValue ( RegisterStorage reg ) : Expression
GetValue ( SegmentedAccess access ) : Expression
IsUsedInPhi ( Identifier id ) : bool
MakeSegmentedAddress ( Constant seg, Constant off ) : Expression
OnAfterCall ( FunctionType sigCallee ) : void

Perform any adjustments to the processor's state after returning from a procedure call with the specified signature.

OnBeforeCall ( Identifier stackReg, int returnAddressSize ) : CallSite

Captures the the processor's state before calling a procedure.

OnProcedureEntered ( ) : void
OnProcedureLeft ( FunctionType procedureSignature ) : void
ProcessorState ( ) : Reko.Core.Code
ProcessorState ( ProcessorState orig ) : Reko.Core.Code
RemoveExpressionUse ( Expression expr ) : void
RemoveIdentifierUse ( Identifier id ) : void
SetInstructionPointer ( Address addr ) : void
SetRegister ( RegisterStorage r, Constant v ) : void
SetValue ( RegisterStorage reg, Expression value ) : Constant
SetValue ( Identifier id, Expression value ) : void
SetValueEa ( Expression ea, Expression value ) : void
SetValueEa ( Expression basePtr, Expression ea, Expression value ) : void
UseExpression ( Expression expr ) : void

Private Methods

Méthode Description
GetStackOffset ( Expression ea, int &offset ) : bool
IsStackRegister ( Expression ea ) : bool

Method Details

Clone() public abstract méthode

public abstract Clone ( ) : ProcessorState
Résultat ProcessorState

GetDefiningExpression() public méthode

public GetDefiningExpression ( Identifier id ) : Expression
id Identifier
Résultat Expression

GetRegister() public abstract méthode

public abstract GetRegister ( RegisterStorage r ) : Constant
r RegisterStorage
Résultat Constant

GetValue() public méthode

public GetValue ( Application appl ) : Expression
appl Application
Résultat Expression

GetValue() public méthode

public GetValue ( Identifier id ) : Expression
id Identifier
Résultat Expression

GetValue() public méthode

public GetValue ( MemoryAccess access ) : Expression
access MemoryAccess
Résultat Expression

GetValue() public méthode

public GetValue ( RegisterStorage reg ) : Expression
reg RegisterStorage
Résultat Expression

GetValue() public méthode

public GetValue ( SegmentedAccess access ) : Expression
access SegmentedAccess
Résultat Expression

IsUsedInPhi() public méthode

public IsUsedInPhi ( Identifier id ) : bool
id Identifier
Résultat bool

MakeSegmentedAddress() public méthode

public MakeSegmentedAddress ( Constant seg, Constant off ) : Expression
seg Constant
off Constant
Résultat Expression

OnAfterCall() public abstract méthode

Perform any adjustments to the processor's state after returning from a procedure call with the specified signature.
public abstract OnAfterCall ( FunctionType sigCallee ) : void
sigCallee FunctionType The signature of the called procedure.
Résultat void

OnBeforeCall() public abstract méthode

Captures the the processor's state before calling a procedure.
public abstract OnBeforeCall ( Identifier stackReg, int returnAddressSize ) : CallSite
stackReg Identifier An identifier for the stack register of the processor.
returnAddressSize int The size of the return address on stack.
Résultat CallSite

OnProcedureEntered() public abstract méthode

public abstract OnProcedureEntered ( ) : void
Résultat void

OnProcedureLeft() public abstract méthode

public abstract OnProcedureLeft ( FunctionType procedureSignature ) : void
procedureSignature FunctionType
Résultat void

ProcessorState() public méthode

public ProcessorState ( ) : Reko.Core.Code
Résultat Reko.Core.Code

ProcessorState() public méthode

public ProcessorState ( ProcessorState orig ) : Reko.Core.Code
orig ProcessorState
Résultat Reko.Core.Code

RemoveExpressionUse() public méthode

public RemoveExpressionUse ( Expression expr ) : void
expr Expression
Résultat void

RemoveIdentifierUse() public méthode

public RemoveIdentifierUse ( Identifier id ) : void
id Identifier
Résultat void

SetInstructionPointer() public abstract méthode

public abstract SetInstructionPointer ( Address addr ) : void
addr Address
Résultat void

SetRegister() public abstract méthode

public abstract SetRegister ( RegisterStorage r, Constant v ) : void
r RegisterStorage
v Constant
Résultat void

SetValue() public méthode

public SetValue ( RegisterStorage reg, Expression value ) : Constant
reg RegisterStorage
value Expression
Résultat Constant

SetValue() public méthode

public SetValue ( Identifier id, Expression value ) : void
id Identifier
value Expression
Résultat void

SetValueEa() public méthode

public SetValueEa ( Expression ea, Expression value ) : void
ea Expression
value Expression
Résultat void

SetValueEa() public méthode

public SetValueEa ( Expression basePtr, Expression ea, Expression value ) : void
basePtr Expression
ea Expression
value Expression
Résultat void

UseExpression() public méthode

public UseExpression ( Expression expr ) : void
expr Expression
Résultat void