C# Class Mosa.Compiler.Framework.MosaTypeLayout

Performs memory layout of a type for compilation.
Afficher le fichier Open project: tgiphil/MOSA-Project Class Usage Examples

Méthodes publiques

Méthode Description
GetFieldOffset ( MosaField field ) : int

Gets the size of the field.

GetFieldSize ( MosaField field ) : int

Gets the size of the field.

GetInterfaceSlotOffset ( MosaType type ) : int

Gets the interface slot offset.

GetInterfaceTable ( MosaType type, MosaType interfaceType ) : MosaMethod[]

Gets the interface table.

GetMethodParameterStackSize ( MosaMethod method ) : int
GetMethodStackSize ( MosaMethod method ) : int
GetMethodTable ( MosaType type ) : IList

Gets the type methods.

GetMethodTableOffset ( MosaMethod method ) : int

Gets the method table offset.

GetTypeSize ( MosaType type ) : int

Gets the size of the type.

IsCompoundType ( MosaType type ) : bool
MosaTypeLayout ( TypeSystem typeSystem, int nativePointerSize, int nativePointerAlignment ) : System

Initializes a new instance of the MosaTypeLayout class.

SetMethodParameterStackSize ( MosaMethod method, int size ) : void
SetMethodStackSize ( MosaMethod method, int size ) : void

Private Methods

Méthode Description
ComputeExplicitLayout ( MosaType type ) : void

Applies the explicit layout to the given type.

ComputeSequentialLayout ( MosaType type ) : void
CreateMethodTable ( MosaType type ) : List
FindImplicitInterfaceMethod ( MosaType type, MosaMethod interfaceMethod ) : MosaMethod
FindInterfaceMethod ( MosaType type, MosaMethod interfaceMethod ) : MosaMethod
FindOverrideSlot ( IList methodTable, MosaMethod method ) : int
GetCleanMethodName ( string fullName ) : string
GetMemorySize ( MosaType type ) : int

Gets the type memory requirements.

GetMethodTableFromBaseType ( MosaType type ) : List
IsExplicitInterfaceMethod ( string fullname ) : bool
ResolveInterfaceType ( MosaType type ) : void

Builds a list of interfaces and assigns interface a unique index number

ResolveLayouts ( ) : void
ResolveType ( MosaType type ) : void
ScanExplicitInterfaceImplementations ( MosaType type, MosaType interfaceType, MosaMethod methodTable ) : void

Method Details

GetFieldOffset() public méthode

Gets the size of the field.
public GetFieldOffset ( MosaField field ) : int
field MosaField The field.
Résultat int

GetFieldSize() public méthode

Gets the size of the field.
public GetFieldSize ( MosaField field ) : int
field MosaField The field.
Résultat int

GetInterfaceSlotOffset() public méthode

Gets the interface slot offset.
public GetInterfaceSlotOffset ( MosaType type ) : int
type MosaType The type.
Résultat int

GetInterfaceTable() public méthode

Gets the interface table.
public GetInterfaceTable ( MosaType type, MosaType interfaceType ) : MosaMethod[]
type MosaType The type.
interfaceType MosaType Type of the interface.
Résultat MosaMethod[]

GetMethodParameterStackSize() public méthode

public GetMethodParameterStackSize ( MosaMethod method ) : int
method MosaMethod
Résultat int

GetMethodStackSize() public méthode

public GetMethodStackSize ( MosaMethod method ) : int
method MosaMethod
Résultat int

GetMethodTable() public méthode

Gets the type methods.
public GetMethodTable ( MosaType type ) : IList
type MosaType The type.
Résultat IList

GetMethodTableOffset() public méthode

Gets the method table offset.
public GetMethodTableOffset ( MosaMethod method ) : int
method MosaMethod The method.
Résultat int

GetTypeSize() public méthode

Gets the size of the type.
public GetTypeSize ( MosaType type ) : int
type MosaType The type.
Résultat int

IsCompoundType() public méthode

public IsCompoundType ( MosaType type ) : bool
type MosaType
Résultat bool

MosaTypeLayout() public méthode

Initializes a new instance of the MosaTypeLayout class.
public MosaTypeLayout ( TypeSystem typeSystem, int nativePointerSize, int nativePointerAlignment ) : System
typeSystem Mosa.Compiler.MosaTypeSystem.TypeSystem The type system.
nativePointerSize int Size of the native pointer.
nativePointerAlignment int The native pointer alignment.
Résultat System

SetMethodParameterStackSize() public méthode

public SetMethodParameterStackSize ( MosaMethod method, int size ) : void
method MosaMethod
size int
Résultat void

SetMethodStackSize() public méthode

public SetMethodStackSize ( MosaMethod method, int size ) : void
method MosaMethod
size int
Résultat void