public void AddTest() { var templates = new List <InstructionTemplate> { new AddTemplate(), new RegisterReadTemplate() }; var v1 = new RegisterRead(new VirtualRegister()); var v2 = new RegisterRead(new VirtualRegister()); var v3 = new RegisterRead(new VirtualRegister()); var node = new ArithmeticBinaryOperation(ArithmeticOperationType.Addition, v1, v2); var root = new ArithmeticBinaryOperation(ArithmeticOperationType.Addition, v3, node); var tree = new Tree(root, new Ret()); var selector = new InstructionSelector(templates); var ins = selector.GetInstructions(tree); Assert.AreEqual(6, ins.Count()); }
public ConstantAddTemplate(ArithmeticBinaryOperation template) : base(template, 5) { this.template = template; }