C# Класс Mosa.Platform.x86.Architecture

This class provides a common base class for architecture specific operations.
Наследование: Mosa.Compiler.Framework.BasicArchitecture
Показать файл Открыть проект

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

Метод Описание
CreateArchitecture ( ArchitectureFeatureFlags architectureFeatures ) : BaseArchitecture

Factory method for the Architecture class.

This method creates an instance of an appropriate architecture class, which supports the specific architecture features.

ExtendCompilerPipeline ( CompilerPipeline compilerPipeline ) : void

Extends the pre-compiler pipeline with x86 compiler stages.

ExtendMethodCompilerPipeline ( CompilerPipeline methodCompilerPipeline ) : void

Extends the method compiler pipeline with x86 specific stages.

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 source ) : 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

Creates the swap.

InsertJumpInstruction ( Context context, BasicBlock destination ) : void

Inserts the jump instruction.

InsertJumpInstruction ( Context context, Operand destination ) : void

Inserts the jump instruction.

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

Create platform move.

InsertStoreInstruction ( Context context, Operand destination, Operand offset, Operand value ) : void
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].

Приватные методы

Метод Описание
Architecture ( ArchitectureFeatureFlags architectureFeatures ) : System.Diagnostics

Initializes a new instance of the Architecture class.

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

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

Factory method for the Architecture class.
This method creates an instance of an appropriate architecture class, which supports the specific architecture features.
public static CreateArchitecture ( ArchitectureFeatureFlags architectureFeatures ) : BaseArchitecture
architectureFeatures ArchitectureFeatureFlags The features available in the architecture and code generation.
Результат Mosa.Compiler.Framework.BaseArchitecture

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

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

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

Extends the method compiler pipeline with x86 specific stages.
public ExtendMethodCompilerPipeline ( CompilerPipeline methodCompilerPipeline ) : void
methodCompilerPipeline CompilerPipeline The method compiler pipeline to extend.
Результат void

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

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

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

Gets the type memory requirements.
public GetTypeRequirements ( MosaTypeLayout typeLayout, MosaType type, int &size, int &alignment ) : void
typeLayout Mosa.Compiler.Framework.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 InsertAddInstruction ( Context context, Operand destination, Operand source1, Operand source2 ) : void
context Mosa.Compiler.Framework.Context The context.
destination Mosa.Compiler.Framework.Operand
source1 Mosa.Compiler.Framework.Operand
source2 Mosa.Compiler.Framework.Operand
Результат void

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

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

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

Create platform compound move.
public InsertCompoundMoveInstruction ( BaseMethodCompiler compiler, Context context, Operand destination, Operand destinationOffset, Operand source, Operand sourceOffset, int size ) : void
compiler Mosa.Compiler.Framework.BaseMethodCompiler The compiler.
context Mosa.Compiler.Framework.Context The context.
destination Mosa.Compiler.Framework.Operand The destination.
destinationOffset Mosa.Compiler.Framework.Operand The destination offset.
source Mosa.Compiler.Framework.Operand The source.
sourceOffset Mosa.Compiler.Framework.Operand The source offset.
size int The size.
Результат void

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

Creates the swap.
public InsertExchangeInstruction ( Context context, Operand destination, Operand source ) : void
context Mosa.Compiler.Framework.Context The context.
destination Mosa.Compiler.Framework.Operand The destination.
source Mosa.Compiler.Framework.Operand The source.
Результат void

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

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

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

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

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

public InsertLoadInstruction ( Context context, Operand destination, Operand source, Operand offset ) : void
context Mosa.Compiler.Framework.Context
destination Mosa.Compiler.Framework.Operand
source Mosa.Compiler.Framework.Operand
offset Mosa.Compiler.Framework.Operand
Результат void

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

Create platform move.
public InsertMoveInstruction ( Context context, Operand destination, Operand source ) : void
context Mosa.Compiler.Framework.Context The context.
destination Mosa.Compiler.Framework.Operand The destination.
source Mosa.Compiler.Framework.Operand The source.
Результат void

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

public InsertStoreInstruction ( Context context, Operand destination, Operand offset, Operand value ) : void
context Mosa.Compiler.Framework.Context
destination Mosa.Compiler.Framework.Operand
offset Mosa.Compiler.Framework.Operand
value Mosa.Compiler.Framework.Operand
Результат void

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

Inserts the sub instruction.
public InsertSubInstruction ( Context context, Operand destination, Operand source1, Operand source2 ) : void
context Mosa.Compiler.Framework.Context The context.
destination Mosa.Compiler.Framework.Operand
source1 Mosa.Compiler.Framework.Operand
source2 Mosa.Compiler.Framework.Operand
Результат void

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

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