C# Класс Mosa.Compiler.Framework.BaseArchitecture

Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
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].

Описание методов

ExtendCompilerPipeline() публичный абстрактный Метод

Extends the pre-compiler pipeline with architecture specific compiler stages.
public abstract ExtendCompilerPipeline ( CompilerPipeline compilerPipeline ) : void
compilerPipeline CompilerPipeline The pipeline to extend.
Результат void

ExtendMethodCompilerPipeline() публичный абстрактный Метод

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.
Результат void

GetCodeEmitter() публичный абстрактный Метод

Gets the code emitter.
public abstract GetCodeEmitter ( ) : BaseCodeEmitter
Результат BaseCodeEmitter

GetTypeRequirements() публичный абстрактный Метод

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.
Результат void

InsertAddInstruction() публичный абстрактный Метод

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.
Результат void

InsertCallInstruction() публичный абстрактный Метод

Inserts the call instruction.
public abstract InsertCallInstruction ( Context context, Operand destination ) : void
context Context The context.
destination Operand The destination.
Результат void

InsertCompoundMoveInstruction() публичный абстрактный Метод

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.
Результат void

InsertExchangeInstruction() публичный абстрактный Метод

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.
Результат void

InsertJumpInstruction() публичный абстрактный Метод

Inserts the jump instruction.
public abstract InsertJumpInstruction ( Context context, BasicBlock destination ) : void
context Context The context.
destination BasicBlock The destination.
Результат void

InsertJumpInstruction() публичный абстрактный Метод

Create platform exchange registers.
public abstract InsertJumpInstruction ( Context context, Operand destination ) : void
context Context The context.
destination Operand The destination.
Результат void

InsertLoadInstruction() публичный абстрактный Метод

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.
Результат void

InsertMoveInstruction() публичный абстрактный Метод

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.
Результат void

InsertStoreInstruction() публичный абстрактный Метод

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.
Результат void

InsertSubInstruction() публичный абстрактный Метод

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.
Результат void

IsInstructionMove() публичный абстрактный Метод

Determines whether [is instruction move] [the specified instruction].
public abstract IsInstructionMove ( BaseInstruction instruction ) : bool
instruction BaseInstruction The instruction.
Результат bool