C# Class Mosa.Compiler.Framework.MosaTypeLayout

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

Public Methods

Method 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

Method 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 method

Gets the size of the field.
public GetFieldOffset ( MosaField field ) : int
field MosaField The field.
return int

GetFieldSize() public method

Gets the size of the field.
public GetFieldSize ( MosaField field ) : int
field MosaField The field.
return int

GetInterfaceSlotOffset() public method

Gets the interface slot offset.
public GetInterfaceSlotOffset ( MosaType type ) : int
type MosaType The type.
return int

GetInterfaceTable() public method

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

GetMethodParameterStackSize() public method

public GetMethodParameterStackSize ( MosaMethod method ) : int
method MosaMethod
return int

GetMethodStackSize() public method

public GetMethodStackSize ( MosaMethod method ) : int
method MosaMethod
return int

GetMethodTable() public method

Gets the type methods.
public GetMethodTable ( MosaType type ) : IList
type MosaType The type.
return IList

GetMethodTableOffset() public method

Gets the method table offset.
public GetMethodTableOffset ( MosaMethod method ) : int
method MosaMethod The method.
return int

GetTypeSize() public method

Gets the size of the type.
public GetTypeSize ( MosaType type ) : int
type MosaType The type.
return int

IsCompoundType() public method

public IsCompoundType ( MosaType type ) : bool
type MosaType
return bool

MosaTypeLayout() public method

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

SetMethodParameterStackSize() public method

public SetMethodParameterStackSize ( MosaMethod method, int size ) : void
method MosaMethod
size int
return void

SetMethodStackSize() public method

public SetMethodStackSize ( MosaMethod method, int size ) : void
method MosaMethod
size int
return void