C# 클래스 Reko.Arch.PowerPC.PowerPcArchitecture

상속: Reko.Core.ProcessorArchitecture
파일 보기 프로젝트 열기: uxmal/reko 1 사용 예제들

공개 메소드들

메소드 설명
CreateDisassembler ( Reko.Core.ImageReader rdr ) : IEnumerable
CreateDisassemblerImpl ( Reko.Core.ImageReader rdr ) : PowerPcDisassembler
CreateImageReader ( MemoryArea image, Address addr ) : Reko.Core.ImageReader
CreateImageReader ( MemoryArea image, Address addrBegin, Address addrEnd ) : Reko.Core.ImageReader
CreateImageReader ( MemoryArea image, ulong offset ) : Reko.Core.ImageReader
CreateImageWriter ( ) : Reko.Core.ImageWriter
CreateImageWriter ( MemoryArea mem, Address addr ) : Reko.Core.ImageWriter
CreateInstructionComparer ( Normalize norm ) : IEqualityComparer
CreatePointerScanner ( Reko.Core.SegmentMap map, Reko.Core.ImageReader rdr, IEnumerable
addrs, PointerScannerFlags flags ) : IEnumerable
CreateProcessorState ( ) : ProcessorState
CreateRewriter ( Reko.Core.ImageReader rdr, ProcessorState state, Frame frame, IRewriterHost host ) : IEnumerable
CreateStackAccess ( Frame frame, int cbOffset, DataType dataType ) : Expression
GetFlagGroup ( string name ) : FlagGroupStorage
GetFlagGroup ( uint grf ) : FlagGroupStorage
GetOpcodeNames ( ) : int>.SortedList
GetOpcodeNumber ( string name ) : int?
GetRegister ( int i ) : RegisterStorage
GetRegister ( string name ) : RegisterStorage
GetRegisters ( ) : RegisterStorage[]
GetSubregister ( RegisterStorage reg, int offset, int width ) : RegisterStorage
GetTrampolineDestination ( IEnumerable rdr, IRewriterHost host ) : Reko.Core.ProcedureBase

Detects the presence of a PowerPC trampoline and returns the imported function that is actually being requested.

A PowerPC trampoline looks like this: addis rX,r0,XXXX (or oris rx,r0,XXXX) lwz rY,YYYY(rX) mtctr rY bctr rY When loading the ELF binary, we discovered the memory locations that will contain pointers to imported functions. If the address XXXXYYYY matches one of those memory locations, we have found a trampoline.

GrfToString ( uint grf ) : string
MakeAddressFromConstant ( Constant c ) : Address
PowerPcArchitecture ( PrimitiveType wordWidth ) : Reko.Core

Creates an instance of PowerPcArchitecture.

ReadCodeAddress ( int size, Reko.Core.ImageReader rdr, ProcessorState state ) : Address
TryGetRegister ( string name, RegisterStorage &reg ) : bool
TryParseAddress ( string txtAddress, Address &addr ) : bool

메소드 상세

CreateDisassembler() 공개 메소드

public CreateDisassembler ( Reko.Core.ImageReader rdr ) : IEnumerable
rdr Reko.Core.ImageReader
리턴 IEnumerable

CreateDisassemblerImpl() 공개 메소드

public CreateDisassemblerImpl ( Reko.Core.ImageReader rdr ) : PowerPcDisassembler
rdr Reko.Core.ImageReader
리턴 PowerPcDisassembler

CreateImageReader() 공개 메소드

public CreateImageReader ( MemoryArea image, Address addr ) : Reko.Core.ImageReader
image Reko.Core.MemoryArea
addr Address
리턴 Reko.Core.ImageReader

CreateImageReader() 공개 메소드

public CreateImageReader ( MemoryArea image, Address addrBegin, Address addrEnd ) : Reko.Core.ImageReader
image Reko.Core.MemoryArea
addrBegin Address
addrEnd Address
리턴 Reko.Core.ImageReader

CreateImageReader() 공개 메소드

public CreateImageReader ( MemoryArea image, ulong offset ) : Reko.Core.ImageReader
image Reko.Core.MemoryArea
offset ulong
리턴 Reko.Core.ImageReader

CreateImageWriter() 공개 메소드

public CreateImageWriter ( ) : Reko.Core.ImageWriter
리턴 Reko.Core.ImageWriter

CreateImageWriter() 공개 메소드

public CreateImageWriter ( MemoryArea mem, Address addr ) : Reko.Core.ImageWriter
mem Reko.Core.MemoryArea
addr Address
리턴 Reko.Core.ImageWriter

CreateInstructionComparer() 공개 메소드

public CreateInstructionComparer ( Normalize norm ) : IEqualityComparer
norm Normalize
리턴 IEqualityComparer

CreatePointerScanner() 공개 추상적인 메소드

public abstract CreatePointerScanner ( Reko.Core.SegmentMap map, Reko.Core.ImageReader rdr, IEnumerable
addrs, PointerScannerFlags flags ) : IEnumerable
map Reko.Core.SegmentMap
rdr Reko.Core.ImageReader
addrs IEnumerable
flags PointerScannerFlags
리턴 IEnumerable

CreateProcessorState() 공개 메소드

public CreateProcessorState ( ) : ProcessorState
리턴 Reko.Core.ProcessorState

CreateRewriter() 공개 메소드

public CreateRewriter ( Reko.Core.ImageReader rdr, ProcessorState state, Frame frame, IRewriterHost host ) : IEnumerable
rdr Reko.Core.ImageReader
state Reko.Core.ProcessorState
frame Reko.Core.Frame
host IRewriterHost
리턴 IEnumerable

CreateStackAccess() 공개 메소드

public CreateStackAccess ( Frame frame, int cbOffset, DataType dataType ) : Expression
frame Reko.Core.Frame
cbOffset int
dataType DataType
리턴 Expression

GetFlagGroup() 공개 메소드

public GetFlagGroup ( string name ) : FlagGroupStorage
name string
리턴 FlagGroupStorage

GetFlagGroup() 공개 메소드

public GetFlagGroup ( uint grf ) : FlagGroupStorage
grf uint
리턴 FlagGroupStorage

GetOpcodeNames() 공개 메소드

public GetOpcodeNames ( ) : int>.SortedList
리턴 int>.SortedList

GetOpcodeNumber() 공개 메소드

public GetOpcodeNumber ( string name ) : int?
name string
리턴 int?

GetRegister() 공개 메소드

public GetRegister ( int i ) : RegisterStorage
i int
리턴 RegisterStorage

GetRegister() 공개 메소드

public GetRegister ( string name ) : RegisterStorage
name string
리턴 RegisterStorage

GetRegisters() 공개 메소드

public GetRegisters ( ) : RegisterStorage[]
리턴 RegisterStorage[]

GetSubregister() 공개 메소드

public GetSubregister ( RegisterStorage reg, int offset, int width ) : RegisterStorage
reg RegisterStorage
offset int
width int
리턴 RegisterStorage

GetTrampolineDestination() 공개 메소드

Detects the presence of a PowerPC trampoline and returns the imported function that is actually being requested.
A PowerPC trampoline looks like this: addis rX,r0,XXXX (or oris rx,r0,XXXX) lwz rY,YYYY(rX) mtctr rY bctr rY When loading the ELF binary, we discovered the memory locations that will contain pointers to imported functions. If the address XXXXYYYY matches one of those memory locations, we have found a trampoline.
public GetTrampolineDestination ( IEnumerable rdr, IRewriterHost host ) : Reko.Core.ProcedureBase
rdr IEnumerable
host IRewriterHost
리턴 Reko.Core.ProcedureBase

GrfToString() 공개 메소드

public GrfToString ( uint grf ) : string
grf uint
리턴 string

MakeAddressFromConstant() 공개 추상적인 메소드

public abstract MakeAddressFromConstant ( Constant c ) : Address
c Constant
리턴 Address

PowerPcArchitecture() 공개 메소드

Creates an instance of PowerPcArchitecture.
public PowerPcArchitecture ( PrimitiveType wordWidth ) : Reko.Core
wordWidth PrimitiveType Supplies the word width of the PowerPC architecture.
리턴 Reko.Core

ReadCodeAddress() 공개 메소드

public ReadCodeAddress ( int size, Reko.Core.ImageReader rdr, ProcessorState state ) : Address
size int
rdr Reko.Core.ImageReader
state Reko.Core.ProcessorState
리턴 Address

TryGetRegister() 공개 메소드

public TryGetRegister ( string name, RegisterStorage &reg ) : bool
name string
reg RegisterStorage
리턴 bool

TryParseAddress() 공개 메소드

public TryParseAddress ( string txtAddress, Address &addr ) : bool
txtAddress string
addr Address
리턴 bool