C# Class Reko.Core.ProcessorArchitecture

Inheritance: IProcessorArchitecture
Datei anzeigen Open project: uxmal/reko

Public Methods

Method Description
CreateDisassembler ( Reko.Core.ImageReader imageReader ) : IEnumerable
CreateFrame ( ) : Frame
CreateImageReader ( MemoryArea img, Address addr ) : Reko.Core.ImageReader
CreateImageReader ( MemoryArea img, Address addrBegin, Address addrEnd ) : Reko.Core.ImageReader
CreateImageReader ( MemoryArea img, ulong off ) : Reko.Core.ImageReader
CreateImageWriter ( ) : Reko.Core.ImageWriter
CreateImageWriter ( MemoryArea img, Address addr ) : Reko.Core.ImageWriter
CreateInstructionComparer ( Normalize norm ) : IEqualityComparer
CreatePointerScanner ( Reko.Core.SegmentMap map, Reko.Core.ImageReader rdr, IEnumerable
knownAddresses, 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
GetAliases ( RegisterStorage reg ) : IEnumerable
GetFlagGroup ( string name ) : FlagGroupStorage
GetFlagGroup ( uint grf ) : FlagGroupStorage
GetOpcodeNames ( ) : int>.SortedList

Returns a map of opcode names to their internal (Reko) numbers.

GetOpcodeNumber ( string name ) : int?

For a particular opcode name, returns its internal (Reko) number.

GetPart ( RegisterStorage reg, DataType dt ) : RegisterStorage
GetRegister ( int i ) : RegisterStorage
GetRegister ( string name ) : RegisterStorage
GetRegisters ( ) : RegisterStorage[]
GetSubregister ( RegisterStorage reg, int offset, int width ) : RegisterStorage

Get the improper subregister of reg that starts at offset offset and is of size width.

Most architectures not have subregisters, and will use this default implementation. This method is overridden for architectures like x86 and Z80, where subregisters (ah al etc) do exist.

GetWidestSubregister ( RegisterStorage reg, HashSet regs ) : RegisterStorage
GrfToString ( uint grf ) : string
LoadUserOptions ( object>.Dictionary options ) : void
MakeAddressFromConstant ( Constant c ) : Address
MakeSegmentedAddress ( Constant seg, Constant offset ) : Address
ReadCodeAddress ( int size, Reko.Core.ImageReader rdr, ProcessorState state ) : Address
RemoveAliases ( ISet ids, RegisterStorage reg ) : void
SaveUserOptions ( ) : object>.Dictionary
TryGetRegister ( string name, RegisterStorage &reg ) : bool
TryParseAddress ( string txtAddr, Address &addr ) : bool

Method Details

CreateDisassembler() public abstract method

public abstract CreateDisassembler ( Reko.Core.ImageReader imageReader ) : IEnumerable
imageReader Reko.Core.ImageReader
return IEnumerable

CreateFrame() public method

public CreateFrame ( ) : Frame
return Frame

CreateImageReader() public abstract method

public abstract CreateImageReader ( MemoryArea img, Address addr ) : Reko.Core.ImageReader
img MemoryArea
addr Address
return Reko.Core.ImageReader

CreateImageReader() public abstract method

public abstract CreateImageReader ( MemoryArea img, Address addrBegin, Address addrEnd ) : Reko.Core.ImageReader
img MemoryArea
addrBegin Address
addrEnd Address
return Reko.Core.ImageReader

CreateImageReader() public abstract method

public abstract CreateImageReader ( MemoryArea img, ulong off ) : Reko.Core.ImageReader
img MemoryArea
off ulong
return Reko.Core.ImageReader

CreateImageWriter() public abstract method

public abstract CreateImageWriter ( ) : Reko.Core.ImageWriter
return Reko.Core.ImageWriter

CreateImageWriter() public abstract method

public abstract CreateImageWriter ( MemoryArea img, Address addr ) : Reko.Core.ImageWriter
img MemoryArea
addr Address
return Reko.Core.ImageWriter

CreateInstructionComparer() public abstract method

public abstract CreateInstructionComparer ( Normalize norm ) : IEqualityComparer
norm Normalize
return IEqualityComparer

CreatePointerScanner() public abstract method

public abstract CreatePointerScanner ( Reko.Core.SegmentMap map, Reko.Core.ImageReader rdr, IEnumerable
knownAddresses, PointerScannerFlags flags ) : IEnumerable
map Reko.Core.SegmentMap
rdr Reko.Core.ImageReader
knownAddresses IEnumerable
flags PointerScannerFlags
return IEnumerable

CreateProcessorState() public abstract method

public abstract CreateProcessorState ( ) : ProcessorState
return ProcessorState

CreateRewriter() public abstract method

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

CreateStackAccess() public abstract method

public abstract CreateStackAccess ( Frame frame, int cbOffset, DataType dataType ) : Expression
frame Frame
cbOffset int
dataType DataType
return Expression

GetAliases() public method

public GetAliases ( RegisterStorage reg ) : IEnumerable
reg RegisterStorage
return IEnumerable

GetFlagGroup() public abstract method

public abstract GetFlagGroup ( string name ) : FlagGroupStorage
name string
return FlagGroupStorage

GetFlagGroup() public abstract method

public abstract GetFlagGroup ( uint grf ) : FlagGroupStorage
grf uint
return FlagGroupStorage

GetOpcodeNames() public abstract method

Returns a map of opcode names to their internal (Reko) numbers.
public abstract GetOpcodeNames ( ) : int>.SortedList
return int>.SortedList

GetOpcodeNumber() public abstract method

For a particular opcode name, returns its internal (Reko) number.
public abstract GetOpcodeNumber ( string name ) : int?
name string
return int?

GetPart() public method

public GetPart ( RegisterStorage reg, DataType dt ) : RegisterStorage
reg RegisterStorage
dt DataType
return RegisterStorage

GetRegister() public abstract method

public abstract GetRegister ( int i ) : RegisterStorage
i int
return RegisterStorage

GetRegister() public abstract method

public abstract GetRegister ( string name ) : RegisterStorage
name string
return RegisterStorage

GetRegisters() public abstract method

public abstract GetRegisters ( ) : RegisterStorage[]
return RegisterStorage[]

GetSubregister() public method

Get the improper subregister of reg that starts at offset offset and is of size width.
Most architectures not have subregisters, and will use this default implementation. This method is overridden for architectures like x86 and Z80, where subregisters (ah al etc) do exist.
public GetSubregister ( RegisterStorage reg, int offset, int width ) : RegisterStorage
reg RegisterStorage
offset int
width int
return RegisterStorage

GetWidestSubregister() public method

public GetWidestSubregister ( RegisterStorage reg, HashSet regs ) : RegisterStorage
reg RegisterStorage
regs HashSet
return RegisterStorage

GrfToString() public abstract method

public abstract GrfToString ( uint grf ) : string
grf uint
return string

LoadUserOptions() public method

public LoadUserOptions ( object>.Dictionary options ) : void
options object>.Dictionary
return void

MakeAddressFromConstant() public abstract method

public abstract MakeAddressFromConstant ( Constant c ) : Address
c Constant
return Address

MakeSegmentedAddress() public method

public MakeSegmentedAddress ( Constant seg, Constant offset ) : Address
seg Constant
offset Constant
return Address

ReadCodeAddress() public abstract method

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

RemoveAliases() public method

public RemoveAliases ( ISet ids, RegisterStorage reg ) : void
ids ISet
reg RegisterStorage
return void

SaveUserOptions() public method

public SaveUserOptions ( ) : object>.Dictionary
return object>.Dictionary

TryGetRegister() public abstract method

public abstract TryGetRegister ( string name, RegisterStorage &reg ) : bool
name string
reg RegisterStorage
return bool

TryParseAddress() public abstract method

public abstract TryParseAddress ( string txtAddr, Address &addr ) : bool
txtAddr string
addr Address
return bool