C# Class Mosa.Platform.ARMv6.Architecture

This class provides a common base class for architecture specific operations.
Inheritance: Mosa.Compiler.Framework.BaseArchitecture
ファイルを表示 Open project: tgiphil/MOSA-Project

Public Methods

Method Description
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 assembly compiler pipeline with ARMv6 specific stages.

ExtendMethodCompilerPipeline ( CompilerPipeline methodCompilerPipeline ) : void

Extends the method compiler pipeline with ARMv6 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 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

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

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
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].

Private Methods

Method Description
Architecture ( ArchitectureFeatureFlags architectureFeatures ) : Mosa.Compiler.Common

Initializes a new instance of the Architecture class.

Method Details

CreateArchitecture() public static method

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.
return Mosa.Compiler.Framework.BaseArchitecture

ExtendCompilerPipeline() public method

Extends the assembly compiler pipeline with ARMv6 specific stages.
public ExtendCompilerPipeline ( CompilerPipeline compilerPipeline ) : void
compilerPipeline CompilerPipeline The pipeline to extend.
return void

ExtendMethodCompilerPipeline() public method

Extends the method compiler pipeline with ARMv6 specific stages.
public ExtendMethodCompilerPipeline ( CompilerPipeline methodCompilerPipeline ) : void
methodCompilerPipeline CompilerPipeline The method compiler pipeline to extend.
return void

GetCodeEmitter() public method

Gets the code emitter.
public GetCodeEmitter ( ) : BaseCodeEmitter
return Mosa.Compiler.Framework.BaseCodeEmitter

GetTypeRequirements() public method

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

InsertAddInstruction() public method

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
return void

InsertCallInstruction() public method

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

InsertCompoundMoveInstruction() public method

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.
return void

InsertExchangeInstruction() public method

Creates the swap.
public InsertExchangeInstruction ( Context context, Operand destination, Operand source ) : void
context Mosa.Compiler.Framework.Context The context.
destination Mosa.Compiler.Framework.Operand
source Mosa.Compiler.Framework.Operand
return void

InsertJumpInstruction() public method

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

InsertJumpInstruction() public method

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.
return void

InsertLoadInstruction() public method

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

InsertMoveInstruction() public method

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

InsertStoreInstruction() public method

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
return void

InsertSubInstruction() public method

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
return void

IsInstructionMove() public method

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