/// <summary> /// Sets up the command /// </summary> public override void Setup() { ILGenerator Generator = Utilities.Reflection.Emit.BaseClasses.MethodBase.CurrentMethod.Generator; if (LeftHandSide is FieldBuilder || LeftHandSide is IPropertyBuilder) { Generator.Emit(OpCodes.Ldarg_0); } LeftHandSide.Load(Generator); if (RightHandSide is FieldBuilder || RightHandSide is IPropertyBuilder) { Generator.Emit(OpCodes.Ldarg_0); } RightHandSide.Load(Generator); if (ComparisonType == Comparison.Equal) { Generator.Emit(OpCodes.Ceq); Generator.Emit(OpCodes.Ldc_I4_0); } Generator.Emit(ComparisonOpCodes[ComparisonType], EndIfLabel); }
/// <summary> /// Sets up the command /// </summary> public override void Setup() { ILGenerator generator = MethodBase.CurrentMethod.Generator; if (LeftHandSide is FieldBuilder || LeftHandSide is IPropertyBuilder) { generator.Emit(OpCodes.Ldarg_0); } LeftHandSide.Load(generator); if (RightHandSide is FieldBuilder || RightHandSide is IPropertyBuilder) { generator.Emit(OpCodes.Ldarg_0); } RightHandSide.Load(generator); if (ComparisonType == Comparison.Equal) { generator.Emit(OpCodes.Ceq); generator.Emit(OpCodes.Ldc_I4_0); } generator.Emit(ComparisonOpCodes[ComparisonType], EndIfLabel); }
public override void Setup() { ILGenerator Generator = Utilities.Reflection.Emit.BaseClasses.MethodBase.CurrentMethod.Generator; if (LeftHandSide is FieldBuilder || LeftHandSide is IPropertyBuilder) { Generator.Emit(OpCodes.Ldarg_0); } LeftHandSide.Load(Generator); if (RightHandSide is FieldBuilder || RightHandSide is IPropertyBuilder) { Generator.Emit(OpCodes.Ldarg_0); } RightHandSide.Load(Generator); if (LeftHandSide.DataType != RightHandSide.DataType) { if (ConversionOpCodes.ContainsKey(LeftHandSide.DataType)) { Generator.Emit(ConversionOpCodes[LeftHandSide.DataType]); } } Generator.Emit(OpCodes.Rem); Result.Save(Generator); }
/// <summary> /// Sets up the command /// </summary> public override void Setup() { ILGenerator generator = MethodBase.CurrentMethod.Generator; if (LeftHandSide is FieldBuilder || LeftHandSide is IPropertyBuilder) { generator.Emit(OpCodes.Ldarg_0); } LeftHandSide.Load(generator); if (RightHandSide is FieldBuilder || RightHandSide is IPropertyBuilder) { generator.Emit(OpCodes.Ldarg_0); } RightHandSide.Load(generator); if (LeftHandSide.DataType != RightHandSide.DataType) { if (ConversionOpCodes.ContainsKey(LeftHandSide.DataType)) { generator.Emit(ConversionOpCodes[LeftHandSide.DataType]); } } generator.Emit(OpCodes.Sub); Result.Save(generator); }