C# Class Reko.Arch.X86.OperandRewriter

Helper class used by the X86 rewriter to turn machine code operands into IL expressions.
Afficher le fichier Open project: uxmal/reko Class Usage Examples

Protected Properties

Свойство Type Description
arch IntelArchitecture

Méthodes publiques

Méthode Description
AddrOf ( Expression expr ) : UnaryExpression
AluRegister ( Reko.Core.Machine.RegisterOperand reg ) : Identifier
AluRegister ( RegisterStorage reg ) : Identifier
AluRegister ( RegisterStorage reg, PrimitiveType vt ) : Identifier
CreateConstant ( ImmediateOperand imm, PrimitiveType dataWidth ) : Constant
CreateMemoryAccess ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand mem, DataType dt, Reko.Arch.X86.X86State state ) : Expression
CreateMemoryAccess ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand memoryOperand, Reko.Arch.X86.X86State state ) : Expression
EffectiveAddressExpression ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand mem, Reko.Arch.X86.X86State state ) : Expression

Memory accesses are translated into expressions.

FlagGroup ( FlagM flags ) : Identifier
FpuRegister ( int reg, Reko.Arch.X86.X86State state ) : Identifier

Changes the stack-relative address 'reg' into a frame-relative operand. If the register number is larger than the stack depth, then the register was passed on the stack when the function was called.

ImmediateAsAddress ( Address address, ImmediateOperand imm ) : Address
ImportedGlobal ( Address addrInstruction, PrimitiveType addrWidth, Reko.Arch.X86.MemoryOperand mem ) : Identifier
ImportedProcedure ( Address addrInstruction, PrimitiveType addrWidth, Reko.Arch.X86.MemoryOperand mem ) : Reko.Core.ExternalProcedure
OperandRewriter ( IntelArchitecture arch, ExpressionEmitter emitter, Frame frame, IRewriterHost host ) : Reko.Core.Expressions
ReplaceCodeSegment ( RegisterStorage reg, Reko.Arch.X86.X86State state ) : Constant
StackAccess ( Expression expr, DataType dt ) : MemoryAccess
Transform ( Reko.Arch.X86.X86Instruction instr, MachineOperand op, PrimitiveType opWidth, Reko.Arch.X86.X86State state ) : Expression

Method Details

AddrOf() public méthode

public AddrOf ( Expression expr ) : UnaryExpression
expr Expression
Résultat UnaryExpression

AluRegister() public méthode

public AluRegister ( Reko.Core.Machine.RegisterOperand reg ) : Identifier
reg Reko.Core.Machine.RegisterOperand
Résultat Identifier

AluRegister() public méthode

public AluRegister ( RegisterStorage reg ) : Identifier
reg RegisterStorage
Résultat Identifier

AluRegister() public méthode

public AluRegister ( RegisterStorage reg, PrimitiveType vt ) : Identifier
reg RegisterStorage
vt PrimitiveType
Résultat Identifier

CreateConstant() public méthode

public CreateConstant ( ImmediateOperand imm, PrimitiveType dataWidth ) : Constant
imm Reko.Core.Machine.ImmediateOperand
dataWidth PrimitiveType
Résultat Constant

CreateMemoryAccess() public méthode

public CreateMemoryAccess ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand mem, DataType dt, Reko.Arch.X86.X86State state ) : Expression
instr Reko.Arch.X86.X86Instruction
mem Reko.Arch.X86.MemoryOperand
dt DataType
state Reko.Arch.X86.X86State
Résultat Expression

CreateMemoryAccess() public méthode

public CreateMemoryAccess ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand memoryOperand, Reko.Arch.X86.X86State state ) : Expression
instr Reko.Arch.X86.X86Instruction
memoryOperand Reko.Arch.X86.MemoryOperand
state Reko.Arch.X86.X86State
Résultat Expression

EffectiveAddressExpression() public méthode

Memory accesses are translated into expressions.
public EffectiveAddressExpression ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand mem, Reko.Arch.X86.X86State state ) : Expression
instr Reko.Arch.X86.X86Instruction
mem Reko.Arch.X86.MemoryOperand
state Reko.Arch.X86.X86State
Résultat Expression

FlagGroup() public méthode

public FlagGroup ( FlagM flags ) : Identifier
flags FlagM
Résultat Identifier

FpuRegister() public méthode

Changes the stack-relative address 'reg' into a frame-relative operand. If the register number is larger than the stack depth, then the register was passed on the stack when the function was called.
public FpuRegister ( int reg, Reko.Arch.X86.X86State state ) : Identifier
reg int
state Reko.Arch.X86.X86State
Résultat Identifier

ImmediateAsAddress() public abstract méthode

public abstract ImmediateAsAddress ( Address address, ImmediateOperand imm ) : Address
address Address
imm Reko.Core.Machine.ImmediateOperand
Résultat Address

ImportedGlobal() public méthode

public ImportedGlobal ( Address addrInstruction, PrimitiveType addrWidth, Reko.Arch.X86.MemoryOperand mem ) : Identifier
addrInstruction Address
addrWidth PrimitiveType
mem Reko.Arch.X86.MemoryOperand
Résultat Identifier

ImportedProcedure() public méthode

public ImportedProcedure ( Address addrInstruction, PrimitiveType addrWidth, Reko.Arch.X86.MemoryOperand mem ) : Reko.Core.ExternalProcedure
addrInstruction Address
addrWidth PrimitiveType
mem Reko.Arch.X86.MemoryOperand
Résultat Reko.Core.ExternalProcedure

OperandRewriter() public méthode

public OperandRewriter ( IntelArchitecture arch, ExpressionEmitter emitter, Frame frame, IRewriterHost host ) : Reko.Core.Expressions
arch IntelArchitecture
emitter Reko.Core.Expressions.ExpressionEmitter
frame Reko.Core.Frame
host IRewriterHost
Résultat Reko.Core.Expressions

ReplaceCodeSegment() public méthode

public ReplaceCodeSegment ( RegisterStorage reg, Reko.Arch.X86.X86State state ) : Constant
reg RegisterStorage
state Reko.Arch.X86.X86State
Résultat Constant

StackAccess() public méthode

public StackAccess ( Expression expr, DataType dt ) : MemoryAccess
expr Expression
dt DataType
Résultat MemoryAccess

Transform() public méthode

public Transform ( Reko.Arch.X86.X86Instruction instr, MachineOperand op, PrimitiveType opWidth, Reko.Arch.X86.X86State state ) : Expression
instr Reko.Arch.X86.X86Instruction
op Reko.Core.Machine.MachineOperand
opWidth PrimitiveType
state Reko.Arch.X86.X86State
Résultat Expression

Property Details

arch protected_oe property

protected IntelArchitecture,Reko.Arch.X86 arch
Résultat IntelArchitecture