C# Class Mosa.Compiler.Framework.BaseArchitecture

Mostra file Open project: tgiphil/MOSA-Project Class Usage Examples

Public Methods

Method Description
ExtendCompilerPipeline ( CompilerPipeline compilerPipeline ) : void

Extends the pre-compiler pipeline with architecture specific compiler stages.

ExtendMethodCompilerPipeline ( CompilerPipeline methodPipeline ) : void

Requests the architecture to add architecture specific compilation stages to the pipeline. These may depend upon the current state of the pipeline.

GetCodeEmitter ( ) : BaseCodeEmitter

Gets the code emitter.

GetTypeRequirements ( MosaTypeLayout typeLayout, MosaType type, int &size, int &alignment ) : void

Gets the type memory requirements.

InsertAddInstruction ( Context context, Operand destination, Operand source1, Operand source2 ) : void

Inserts the add instruction.

InsertCallInstruction ( Context context, Operand destination ) : void

Inserts the call instruction.

InsertCompoundMoveInstruction ( BaseMethodCompiler compiler, Context context, Operand destination, Operand destinationOffset, Operand source, Operand sourceOffset, int size ) : void

Create platform compound move.

InsertExchangeInstruction ( Context context, Operand destination, Operand source ) : void

Create platform exchange registers.

InsertJumpInstruction ( Context context, BasicBlock destination ) : void

Inserts the jump instruction.

InsertJumpInstruction ( Context context, Operand destination ) : void

Create platform exchange registers.

InsertLoadInstruction ( Context context, Operand destination, Operand source, Operand offset ) : void

Inserts the load instruction.

InsertMoveInstruction ( Context context, Operand destination, Operand source ) : void

Create platform move.

InsertStoreInstruction ( Context context, Operand destination, Operand offset, Operand value ) : void

Inserts the store instruction.

InsertSubInstruction ( Context context, Operand destination, Operand source1, Operand source2 ) : void

Inserts the sub instruction.

IsInstructionMove ( BaseInstruction instruction ) : bool

Determines whether [is instruction move] [the specified instruction].

Method Details

ExtendCompilerPipeline() public abstract method

Extends the pre-compiler pipeline with architecture specific compiler stages.
public abstract ExtendCompilerPipeline ( CompilerPipeline compilerPipeline ) : void
compilerPipeline CompilerPipeline The pipeline to extend.
return void

ExtendMethodCompilerPipeline() public abstract method

Requests the architecture to add architecture specific compilation stages to the pipeline. These may depend upon the current state of the pipeline.
public abstract ExtendMethodCompilerPipeline ( CompilerPipeline methodPipeline ) : void
methodPipeline CompilerPipeline The pipeline of the method compiler to add architecture specific compilation stages to.
return void

GetCodeEmitter() public abstract method

Gets the code emitter.
public abstract GetCodeEmitter ( ) : BaseCodeEmitter
return BaseCodeEmitter

GetTypeRequirements() public abstract method

Gets the type memory requirements.
public abstract GetTypeRequirements ( MosaTypeLayout typeLayout, MosaType type, int &size, int &alignment ) : void
typeLayout MosaTypeLayout The type layouts.
type MosaType The type.
size int Receives the memory size of the type.
alignment int Receives alignment requirements of the type.
return void

InsertAddInstruction() public abstract method

Inserts the add instruction.
public abstract InsertAddInstruction ( Context context, Operand destination, Operand source1, Operand source2 ) : void
context Context The context.
destination Operand The destination.
source1 Operand The source1.
source2 Operand The source2.
return void

InsertCallInstruction() public abstract method

Inserts the call instruction.
public abstract InsertCallInstruction ( Context context, Operand destination ) : void
context Context The context.
destination Operand The destination.
return void

InsertCompoundMoveInstruction() public abstract method

Create platform compound move.
public abstract InsertCompoundMoveInstruction ( BaseMethodCompiler compiler, Context context, Operand destination, Operand destinationOffset, Operand source, Operand sourceOffset, int size ) : void
compiler BaseMethodCompiler The compiler.
context Context The context.
destination Operand The destination.
destinationOffset Operand The destination offset.
source Operand The source.
sourceOffset Operand The source offset.
size int The size.
return void

InsertExchangeInstruction() public abstract method

Create platform exchange registers.
public abstract InsertExchangeInstruction ( Context context, Operand destination, Operand source ) : void
context Context The context.
destination Operand The destination.
source Operand The source.
return void

InsertJumpInstruction() public abstract method

Inserts the jump instruction.
public abstract InsertJumpInstruction ( Context context, BasicBlock destination ) : void
context Context The context.
destination BasicBlock The destination.
return void

InsertJumpInstruction() public abstract method

Create platform exchange registers.
public abstract InsertJumpInstruction ( Context context, Operand destination ) : void
context Context The context.
destination Operand The destination.
return void

InsertLoadInstruction() public abstract method

Inserts the load instruction.
public abstract InsertLoadInstruction ( Context context, Operand destination, Operand source, Operand offset ) : void
context Context The context.
destination Operand The destination.
source Operand The source.
offset Operand The offset.
return void

InsertMoveInstruction() public abstract method

Create platform move.
public abstract InsertMoveInstruction ( Context context, Operand destination, Operand source ) : void
context Context The context.
destination Operand The destination.
source Operand The source.
return void

InsertStoreInstruction() public abstract method

Inserts the store instruction.
public abstract InsertStoreInstruction ( Context context, Operand destination, Operand offset, Operand value ) : void
context Context The context.
destination Operand The destination.
offset Operand The offset.
value Operand The value.
return void

InsertSubInstruction() public abstract method

Inserts the sub instruction.
public abstract InsertSubInstruction ( Context context, Operand destination, Operand source1, Operand source2 ) : void
context Context The context.
destination Operand The destination.
source1 Operand The source1.
source2 Operand The source2.
return void

IsInstructionMove() public abstract method

Determines whether [is instruction move] [the specified instruction].
public abstract IsInstructionMove ( BaseInstruction instruction ) : bool
instruction BaseInstruction The instruction.
return bool