public override ArithmeticVT Arithmetic(Instruction instruction, ModuleDef module) { if (!ArithmeticUtils.CheckArithmetic(instruction)) { return(null); } var arithmeticEmulator = new ArithmeticEmulator(instruction.GetLdcI4Value(), ArithmeticUtils.GetY(instruction.GetLdcI4Value()), ArithmeticTypes); return(new ArithmeticVT(new Value(arithmeticEmulator.GetValue(), arithmeticEmulator.GetY()), new Token(OpCodes.Div), ArithmeticTypes)); }
public override ArithmeticVT Arithmetic(Instruction instruction, ModuleDef module) { Generator.Generator generator = new Generator.Generator(); if (!ArithmeticUtils.CheckArithmetic(instruction)) { return(null); } ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator(instruction.GetLdcI4Value(), generator.Next(), ArithmeticTypes); return(new ArithmeticVT(new Value(arithmeticEmulator.GetValue(), arithmeticEmulator.GetY()), new Token(OpCodes.Xor), ArithmeticTypes)); }
public override ArithmeticVT Arithmetic(Instruction instruction, ModuleDef module) { Generator.Generator generator = new Generator.Generator(); if (!ArithmeticUtils.CheckArithmetic(instruction)) { return(null); } List <ArithmeticTypes> arithmeticTypes = new List <ArithmeticTypes>() { ArithmeticTypes.Add, ArithmeticTypes.Sub }; ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator(instruction.GetLdcI4Value(), ArithmeticUtils.GetY(instruction.GetLdcI4Value()), ArithmeticTypes); return(new ArithmeticVT(new Value(arithmeticEmulator.GetValue(arithmeticTypes), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), module.Import(ArithmeticUtils.GetMethod(ArithmeticTypes))), ArithmeticTypes)); }