C# 클래스 Reko.Arch.M68k.OperandRewriter

Rewrites M68k operands into sequences of RTL expressions and possibly instructions.
Some of the operands, like (A6)+ and -(A5), have side effects that need to be expressed as separate instructions. We must therefore insert RTL instructions into the stream as these operands are rewritten. Because of these side effects, it is critical that we don't call Rewrite twice on the same operand, as this will cause two side effect instructions to be generated.
파일 보기 프로젝트 열기: uxmal/reko 1 사용 예제들

공개 메소드들

메소드 설명
FlagGroup ( FlagM flags ) : Identifier
OperandRewriter ( M68kArchitecture arch, Reko.Core.Rtl.RtlEmitter emitter, Frame frame, PrimitiveType dataWidth ) : Reko.Core
RewriteDst ( MachineOperand operand, Address addrInstr, Expression src, Func opGen ) : Expression
RewriteDst ( MachineOperand operand, Address addrInstr, PrimitiveType dataWidth, Expression src, Func opGen ) : Expression
RewriteMoveDst ( MachineOperand opDst, Address addrInstr, PrimitiveType dataWidth, Expression src ) : Expression
RewriteSrc ( MachineOperand operand, Address addrInstr, bool addressAsAddress = false ) : Expression

Rewrite operands being used as sources.

RewriteUnary ( MachineOperand operand, Address addrInstr, PrimitiveType dataWidth, Expression>.Func opGen ) : Expression

비공개 메소드들

메소드 설명
Combine ( Expression e, Expression o ) : Expression
Combine ( Expression e, RegisterStorage reg ) : Expression
RewriteIndirectBaseRegister ( IndirectIndexedOperand indidx, Address addrInstr ) : Expression
RewriteMemoryAccess ( MemoryOperand mem, PrimitiveType dataWidth, Address addrInstr ) : MemoryAccess
Spill ( Expression src, Identifier r ) : Expression

메소드 상세

FlagGroup() 공개 메소드

public FlagGroup ( FlagM flags ) : Identifier
flags FlagM
리턴 Identifier

OperandRewriter() 공개 메소드

public OperandRewriter ( M68kArchitecture arch, Reko.Core.Rtl.RtlEmitter emitter, Frame frame, PrimitiveType dataWidth ) : Reko.Core
arch M68kArchitecture
emitter Reko.Core.Rtl.RtlEmitter
frame Reko.Core.Frame
dataWidth PrimitiveType
리턴 Reko.Core

RewriteDst() 공개 메소드

public RewriteDst ( MachineOperand operand, Address addrInstr, Expression src, Func opGen ) : Expression
operand Reko.Core.Machine.MachineOperand
addrInstr Address
src Expression
opGen Func
리턴 Expression

RewriteDst() 공개 메소드

public RewriteDst ( MachineOperand operand, Address addrInstr, PrimitiveType dataWidth, Expression src, Func opGen ) : Expression
operand Reko.Core.Machine.MachineOperand
addrInstr Address
dataWidth PrimitiveType
src Expression
opGen Func
리턴 Expression

RewriteMoveDst() 공개 메소드

public RewriteMoveDst ( MachineOperand opDst, Address addrInstr, PrimitiveType dataWidth, Expression src ) : Expression
opDst Reko.Core.Machine.MachineOperand
addrInstr Address
dataWidth PrimitiveType
src Expression
리턴 Expression

RewriteSrc() 공개 메소드

Rewrite operands being used as sources.
public RewriteSrc ( MachineOperand operand, Address addrInstr, bool addressAsAddress = false ) : Expression
operand Reko.Core.Machine.MachineOperand
addrInstr Address Address of the current instruction
addressAsAddress bool
리턴 Expression

RewriteUnary() 공개 메소드

public RewriteUnary ( MachineOperand operand, Address addrInstr, PrimitiveType dataWidth, Expression>.Func opGen ) : Expression
operand Reko.Core.Machine.MachineOperand
addrInstr Address
dataWidth PrimitiveType
opGen Expression>.Func
리턴 Expression