Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ public override int Run(InterpretedFrame frame)

internal abstract class NegateInstruction : Instruction
{
private static Instruction s_int16,s_int32,s_int64,s_UInt16,s_UInt32,s_single,s_double;
private static Instruction s_int16, s_int32, s_int64, s_single, s_double;

public override int ConsumedStack { get { return 1; } }
public override int ProducedStack { get { return 1; } }
Expand Down Expand Up @@ -348,7 +348,7 @@ public override int Run(InterpretedFrame frame)
}
else
{
frame.Push((Int16)unchecked(-(Int16)obj));
frame.Push(unchecked((Int16)(-(Int16)obj)));
}
return +1;
}
Expand All @@ -365,41 +365,7 @@ public override int Run(InterpretedFrame frame)
}
else
{
frame.Push((Int64)unchecked(-(Int64)obj));
}
return +1;
}
}

internal sealed class NegateUInt16 : NegateInstruction
{
public override int Run(InterpretedFrame frame)
{
object obj = frame.Pop();
if (obj == null)
{
frame.Push(null);
}
else
{
frame.Push((Int16)unchecked(-(UInt16)obj));
}
return +1;
}
}

internal sealed class NegateUInt32 : NegateInstruction
{
public override int Run(InterpretedFrame frame)
{
object obj = frame.Pop();
if (obj == null)
{
frame.Push(null);
}
else
{
frame.Push((Int32)unchecked(-(UInt32)obj));
frame.Push(unchecked((Int64)(-(Int64)obj)));
}
return +1;
}
Expand All @@ -416,7 +382,7 @@ public override int Run(InterpretedFrame frame)
}
else
{
frame.Push((Single)unchecked(-(Single)obj));
frame.Push(unchecked((Single)(-(Single)obj)));
}
return +1;
}
Expand All @@ -433,7 +399,7 @@ public override int Run(InterpretedFrame frame)
}
else
{
frame.Push((Double)unchecked(-(Double)obj));
frame.Push(unchecked((Double)(-(Double)obj)));
}
return +1;
}
Expand All @@ -447,8 +413,6 @@ public static Instruction Create(Type type)
case TypeCode.Int16: return s_int16 ?? (s_int16 = new NegateInt16());
case TypeCode.Int32: return s_int32 ?? (s_int32 = new NegateInt32());
case TypeCode.Int64: return s_int64 ?? (s_int64 = new NegateInt64());
case TypeCode.UInt16: return s_UInt16 ?? (s_UInt16 = new NegateUInt16());
case TypeCode.UInt32: return s_UInt32 ?? (s_UInt32 = new NegateUInt32());
case TypeCode.Single: return s_single ?? (s_single = new NegateSingle());
case TypeCode.Double: return s_double ?? (s_double = new NegateDouble());

Expand All @@ -465,7 +429,7 @@ public override string ToString()

internal abstract class NegateCheckedInstruction : Instruction
{
private static Instruction s_int16,s_int32,s_int64,s_UInt16,s_UInt32,s_single,s_double;
private static Instruction s_int16, s_int32, s_int64, s_single, s_double;

public override int ConsumedStack { get { return 1; } }
public override int ProducedStack { get { return 1; } }
Expand Down Expand Up @@ -505,7 +469,7 @@ public override int Run(InterpretedFrame frame)
}
else
{
frame.Push((Int16)checked(-(Int16)obj));
frame.Push(checked((Int16)(-(Int16)obj)));
}
return +1;
}
Expand All @@ -522,46 +486,11 @@ public override int Run(InterpretedFrame frame)
}
else
{
frame.Push((Int64)checked(-(Int64)obj));
frame.Push(checked((Int64)(-(Int64)obj)));
}
return +1;
}
}

internal sealed class NegateCheckedUInt16 : NegateCheckedInstruction
{
public override int Run(InterpretedFrame frame)
{
object obj = frame.Pop();
if (obj == null)
{
frame.Push(null);
}
else
{
frame.Push((Int16)checked(-(UInt16)obj));
}
return +1;
}
}

internal sealed class NegateCheckedUInt32 : NegateCheckedInstruction
{
public override int Run(InterpretedFrame frame)
{
object obj = frame.Pop();
if (obj == null)
{
frame.Push(null);
}
else
{
frame.Push((Int32)checked(-(UInt32)obj));
}
return +1;
}
}

internal sealed class NegateCheckedSingle : NegateCheckedInstruction
{
public override int Run(InterpretedFrame frame)
Expand All @@ -573,7 +502,7 @@ public override int Run(InterpretedFrame frame)
}
else
{
frame.Push((Single)checked(-(Single)obj));
frame.Push(checked((Single)(-(Single)obj)));
}
return +1;
}
Expand All @@ -590,7 +519,7 @@ public override int Run(InterpretedFrame frame)
}
else
{
frame.Push((Double)checked(-(Double)obj));
frame.Push(checked((Double)(-(Double)obj)));
}
return +1;
}
Expand All @@ -604,8 +533,6 @@ public static Instruction Create(Type type)
case TypeCode.Int16: return s_int16 ?? (s_int16 = new NegateCheckedInt16());
case TypeCode.Int32: return s_int32 ?? (s_int32 = new NegateCheckedInt32());
case TypeCode.Int64: return s_int64 ?? (s_int64 = new NegateCheckedInt64());
case TypeCode.UInt16: return s_UInt16 ?? (s_UInt16 = new NegateCheckedUInt16());
case TypeCode.UInt32: return s_UInt32 ?? (s_UInt32 = new NegateCheckedUInt32());
case TypeCode.Single: return s_single ?? (s_single = new NegateCheckedSingle());
case TypeCode.Double: return s_double ?? (s_double = new NegateCheckedDouble());
default:
Expand All @@ -622,7 +549,7 @@ public override string ToString()

internal abstract class IncrementInstruction : Instruction
{
private static Instruction s_int16,s_int32,s_int64,s_UInt16,s_UInt32,s_single,s_double;
private static Instruction s_int16, s_int32, s_int64, s_UInt16, s_UInt32, s_single, s_double;

public override int ConsumedStack { get { return 1; } }
public override int ProducedStack { get { return 1; } }
Expand Down Expand Up @@ -779,7 +706,7 @@ public override string ToString()

internal abstract class DecrementInstruction : Instruction
{
private static Instruction s_int16,s_int32,s_int64,s_UInt16,s_UInt32,s_single,s_double;
private static Instruction s_int16, s_int32, s_int64, s_UInt16, s_UInt32, s_single, s_double;

public override int ConsumedStack { get { return 1; } }
public override int ProducedStack { get { return 1; } }
Expand Down Expand Up @@ -937,7 +864,7 @@ public override string ToString()

internal abstract class LeftShiftInstruction : Instruction
{
private static Instruction s_SByte,s_int16,s_int32,s_int64,s_byte,s_UInt16,s_UInt32,s_UInt64;
private static Instruction s_SByte, s_int16, s_int32, s_int64, s_byte, s_UInt16, s_UInt32, s_UInt64;

public override int ConsumedStack { get { return 2; } }
public override int ProducedStack { get { return 1; } }
Expand Down Expand Up @@ -1122,7 +1049,7 @@ public override string ToString()

internal abstract class RightShiftInstruction : Instruction
{
private static Instruction s_SByte,s_int16,s_int32,s_int64,s_byte,s_UInt16,s_UInt32,s_UInt64;
private static Instruction s_SByte, s_int16, s_int32, s_int64, s_byte, s_UInt16, s_UInt32, s_UInt64;

public override int ConsumedStack { get { return 2; } }
public override int ProducedStack { get { return 1; } }
Expand Down Expand Up @@ -1307,7 +1234,7 @@ public override string ToString()

internal abstract class ExclusiveOrInstruction : Instruction
{
private static Instruction s_SByte,s_int16,s_int32,s_int64,s_byte,s_UInt16,s_UInt32,s_UInt64,s_bool;
private static Instruction s_SByte, s_int16, s_int32, s_int64, s_byte, s_UInt16, s_UInt32, s_UInt64, s_bool;

public override int ConsumedStack { get { return 2; } }
public override int ProducedStack { get { return 1; } }
Expand Down Expand Up @@ -1498,7 +1425,7 @@ public override string ToString()

internal abstract class OrInstruction : Instruction
{
private static Instruction s_SByte,s_int16,s_int32,s_int64,s_byte,s_UInt16,s_UInt32,s_UInt64,s_bool;
private static Instruction s_SByte, s_int16, s_int32, s_int64, s_byte, s_UInt16, s_UInt32, s_UInt64, s_bool;

public override int ConsumedStack { get { return 2; } }
public override int ProducedStack { get { return 1; } }
Expand Down Expand Up @@ -1696,7 +1623,7 @@ public override string ToString()

internal abstract class AndInstruction : Instruction
{
private static Instruction s_SByte,s_int16,s_int32,s_int64,s_byte,s_UInt16,s_UInt32,s_UInt64,s_bool;
private static Instruction s_SByte, s_int16, s_int32, s_int64, s_byte, s_UInt16, s_UInt32, s_UInt64, s_bool;

public override int ConsumedStack { get { return 2; } }
public override int ProducedStack { get { return 1; } }
Expand Down Expand Up @@ -2059,7 +1986,7 @@ public static Instruction CreateGetValue()

internal abstract class CastInstruction : Instruction
{
private static CastInstruction s_boolean,s_byte,s_char,s_dateTime,s_decimal,s_double,s_int16,s_int32,s_int64, s_SByte,s_single,s_string,s_UInt16,s_UInt32,s_UInt64;
private static CastInstruction s_boolean, s_byte, s_char, s_dateTime, s_decimal, s_double, s_int16, s_int32, s_int64, s_SByte, s_single, s_string, s_UInt16, s_UInt32, s_UInt64;

public override int ConsumedStack { get { return 1; } }
public override int ProducedStack { get { return 1; } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,9 @@
<Compile Include="Ternary\TernaryNullableTests.cs" />
<Compile Include="Ternary\TernaryTests.cs" />
<Compile Include="Unary\UnaryArithmeticNegateNullableOneOffTests.cs" />
<Compile Include="Unary\UnaryArithmeticNegateCheckedNullableTests.cs" />
<Compile Include="Unary\UnaryArithmeticNegateNullableTests.cs" />
<Compile Include="Unary\UnaryArithmeticNegateCheckedTests.cs" />
<Compile Include="Unary\UnaryArithmeticNegateTests.cs" />
<Compile Include="Unary\UnaryBitwiseNotNullableTests.cs" />
<Compile Include="Unary\UnaryBitwiseNotTests.cs" />
Expand Down
Loading