C# Class Mosa.Compiler.Framework.Stages.CILTransformationStage

Transforms CIL instructions into their appropriate IR.
This transformation stage transforms CIL instructions into their equivalent IR sequences.
Inheritance: BaseCodeTransformationStage, CIL.ICILVisitor, IPipelineStage
Afficher le fichier Open project: tgiphil/MOSA-Project

Méthodes protégées

Méthode Description
PopulateVisitationDictionary ( ) : void
Setup ( ) : void

Private Methods

Méthode Description
Add ( Context context ) : void

Visitation function for Add instruction.

AddArrayBoundsCheck ( Context context, Operand arrayOperand, Operand arrayIndexOperand ) : void

Adds bounds check to the array access.

BinaryBranch ( Context context ) : void

Visitation function for BinaryBranch instruction.

BinaryComparison ( Context context ) : void

Visitation function for BinaryComparison instruction.

BinaryLogic ( Context context ) : void

Visitation function for BinaryLogic instruction.

Box ( Context context ) : void

Visitation function for Box instruction.

Branch ( Context context ) : void

Visitation function for Branch instruction.

Break ( Context context ) : void

Visitation function for Break instruction.

BuildInternalCallName ( MosaMethod method ) : string
CalculateArrayElementOffset ( Context context, MosaType arrayType, Operand index ) : Operand

Calculates the element offset for the specified index.

CalculateInterfaceSlot ( MosaType interaceType ) : int
CalculateInterfaceSlotOffset ( MosaMethod invokeTarget ) : int
CalculateMethodTableOffset ( MosaMethod invokeTarget ) : int
Call ( Context context ) : void

Visitation function for Call instruction.

Calli ( Context context ) : void

Visitation function for Calli instruction.

Callvirt ( Context context ) : void

Visitation function for Callvirt instruction.

CanSkipDueToRecursiveSystemObjectCtorCall ( Context context ) : bool
Castclass ( Context context ) : void

Visitation function for Castclass instruction.

ComputeExtensionTypeAndMask ( MosaType type, uint &mask ) : BaseInstruction
Conversion ( Context context ) : void

Visitation function for Conversion instruction.

ConvertCondition ( CIL opcode ) : ConditionCode

Converts the specified opcode.

Cpblk ( Context context ) : void

Visitation function for Cpblk instruction.

Div ( Context context ) : void

Visitation function for Div instruction.

Dup ( Context context ) : void

Visitation function for Dup instruction.

Endfilter ( Context context ) : void

Visitation function for Endfilter instruction.

Endfinally ( Context context ) : void

Visitation function for Endfinally instruction.

GetIndex ( MosaType type, bool Platform32Bit ) : int

Gets the index.

GetMethodOrOverride ( MosaType type, MosaMethod method ) : MosaMethod
GetRuntimeTypeHandle ( MosaType runtimeType, Context context ) : Operand
InitObj ( Context context ) : void

Visitation function for InitObj instruction.

Initblk ( Context context ) : void

Visitation function for Initblk instruction.

IsInst ( Context context ) : void

Visitation function for Isinst instruction.

IsTruncating ( Operand destination, Operand source ) : bool

Determines if a store is silently truncating the value.

Ldarg ( Context context ) : void

Visitation function for Ldarg instruction.

Ldarga ( Context context ) : void

Visitation function for Ldarga instruction.

Ldc ( Context context ) : void

Visitation function for Ldc instruction.

Ldelem ( Context context ) : void

Visitation function for Ldelem instruction.

Ldelema ( Context context ) : void

Visitation function for Ldelema instruction.

Ldfld ( Context context ) : void

Visitation function for Ldfld instruction.

Ldflda ( Context context ) : void

Visitation function for Ldflda instruction.

Ldftn ( Context context ) : void

Visitation function for Ldftn instruction.

Ldlen ( Context context ) : void

Visitation function for Ldlen instruction.

Ldloc ( Context context ) : void

Visitation function for Ldloc instruction.

Ldloca ( Context context ) : void

Visitation function for Ldloca instruction.

Ldobj ( Context context ) : void

Visitation function for Ldobj instruction.

Ldsfld ( Context context ) : void

Visitation function for Ldsfld instruction.

Ldsflda ( Context context ) : void

Visitation function for Ldsflda instruction.

Ldstr ( Context context ) : void

Visitation function for Ldstr instruction.

Ldtoken ( Context context ) : void

Visitation function for Ldtoken instruction.

Ldvirtftn ( Context context ) : void

Visitation function for Ldvirtftn instruction.

Leave ( Context context ) : void

Visitation function for Leave instruction.

LoadArrayBaseAddress ( Context context, MosaType arrayType, Operand array ) : Operand

Calculates the base of the array elements.

Mul ( Context context ) : void

Visitation function for Mul instruction.

Neg ( Context context ) : void

Visitation function for Neg instruction.

Newarr ( Context context ) : void

Visitation function for Newarr instruction.

Newobj ( Context context ) : void

Visitation function for Newobj instruction.

Nop ( Context context ) : void

Visitation function for Nop instruction.

Not ( Context context ) : void

Visitation function for Not instruction.

OverridesMethod ( MosaMethod method ) : bool
Pop ( Context context ) : void

Visitation function for Pop instruction.

ProcessExternalCall ( Context context ) : bool

Processes external method calls.

This method checks if the call target has an Intrinsic-Attribute applied with the current architecture. If it has, the method call is replaced by the specified native instruction.

ProcessInvokeInstruction ( Context context, MosaMethod method, Operand resultOperand, List operands ) : void

Processes the invoke instruction.

ProcessInvokeInstruction ( Context context, MosaMethod method, Operand symbolOperand, Operand resultOperand, List operands ) : void

Processes a method call instruction.

ProcessLoadInstruction ( Context context ) : void

Replaces the IL load instruction by an appropriate IR move instruction or removes it entirely, if it is a native size.

Rem ( Context context ) : void

Visitation function for Rem instruction.

Replace ( Context context, BaseInstruction floatingPointR4Instruction, BaseInstruction floatingPointR8Instruction, BaseInstruction signedInstruction, BaseInstruction unsignedInstruction ) : void
ReplaceWithInternalCall ( Context context ) : bool
ReplaceWithVmCall ( Context context, VmCall internalCallTarget ) : void

Replaces the instruction with an internal call.

Ret ( Context context ) : void

Visitation function for Ret instruction.

Rethrow ( Context context ) : void

Visitation function for Rethrow instruction.

Shift ( Context context ) : void

Visitation function for Shift instruction.

Sizeof ( Context context ) : void

Visitation function for Sizeof instruction.

Starg ( Context context ) : void

Visitation function for Starg instruction.

Stelem ( Context context ) : void

Visitation function for Stelem instruction.

Stfld ( Context context ) : void

Visitation function for Stfld instruction.

Stloc ( Context context ) : void

Visitation function for Stloc instruction.

Stobj ( Context context ) : void

Visitation function for Stobj instruction.

Stsfld ( Context context ) : void

Visitation function for Stsfld instruction.

Sub ( Context context ) : void

Visitation function for Sub instruction.

Switch ( Context context ) : void

Visitation function for Switch instruction.

Throw ( Context context ) : void

Visitation function for Throw instruction.

ToVmUnboxCall ( int typeSize ) : VmCall
TypeContainsMethodObjective ( MosaType type, MosaMethod method ) : bool
UnaryBranch ( Context context ) : void

Visitation function for UnaryBranch instruction.

Unbox ( Context context ) : void

Visitation function for Unbox instruction.

UnboxAny ( Context context ) : void

Visitation function for Unbox.Any instruction.

Method Details

PopulateVisitationDictionary() protected méthode

protected PopulateVisitationDictionary ( ) : void
Résultat void

Setup() protected méthode

protected Setup ( ) : void
Résultat void