C# 클래스 Mosa.Platform.ARMv6.Architecture

This class provides a common base class for architecture specific operations.
상속: Mosa.Compiler.Framework.BaseArchitecture
파일 보기 프로젝트 열기: tgiphil/MOSA-Project

공개 메소드들

메소드 설명
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].

비공개 메소드들

메소드 설명
Architecture ( ArchitectureFeatureFlags architectureFeatures ) : Mosa.Compiler.Common

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 assembly compiler pipeline with ARMv6 specific stages.
public ExtendCompilerPipeline ( CompilerPipeline compilerPipeline ) : void
compilerPipeline CompilerPipeline The pipeline to extend.
리턴 void

ExtendMethodCompilerPipeline() 공개 메소드

Extends the method compiler pipeline with ARMv6 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.
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.
리턴 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 destination ) : void
context Mosa.Compiler.Framework.Context The context.
destination Mosa.Compiler.Framework.Operand The destination.
리턴 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
source Mosa.Compiler.Framework.Operand
리턴 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() 공개 메소드

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.
리턴 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
source Mosa.Compiler.Framework.Operand
리턴 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