mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-22 13:58:47 +00:00
52 lines
No EOL
1.7 KiB
C#
52 lines
No EOL
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace Cosmos.IL2CPU
|
|
{
|
|
public sealed class StackContent
|
|
{
|
|
public StackContent( int aSize )
|
|
{
|
|
Size = aSize;
|
|
}
|
|
|
|
public StackContent( int aSize, Type aType )
|
|
: this( aSize )
|
|
{
|
|
IsNumber = ( aType == typeof( byte )
|
|
|| aType == typeof( sbyte )
|
|
|| aType == typeof( Boolean )
|
|
|| aType == typeof( short )
|
|
|| aType == typeof( ushort )
|
|
|| aType == typeof( int )
|
|
|| aType == typeof( uint )
|
|
|| aType == typeof( long )
|
|
|| aType == typeof( ulong )
|
|
|| aType == typeof( Single )
|
|
|| aType == typeof( Double ) );
|
|
IsFloat = ( aType == typeof( Single ) || aType == typeof( Double ) );
|
|
IsSigned = ( aType == typeof( sbyte )
|
|
|| aType == typeof( short )
|
|
|| aType == typeof( int )
|
|
|| aType == typeof( long )
|
|
|| aType == typeof( Single )
|
|
|| aType == typeof( Double ) );
|
|
ContentType = aType;
|
|
}
|
|
|
|
public StackContent( int aSize, bool aIsNumber, bool aIsFloat, bool aIsSigned )
|
|
: this( aSize )
|
|
{
|
|
IsNumber = aIsNumber;
|
|
IsFloat = aIsFloat;
|
|
IsSigned = aIsSigned;
|
|
}
|
|
public readonly int Size;
|
|
public readonly bool IsNumber = false;
|
|
public readonly bool IsFloat = false;
|
|
public readonly bool IsSigned = false;
|
|
public readonly Type ContentType = null;
|
|
public readonly bool IsBox = false;
|
|
}
|
|
} |