Cosmos/source2/IL2PCU/Cosmos.IL2CPU/StackContent.cs
2009-08-23 20:30:02 +00:00

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;
}
}