public void Test2() { BinaryExpression b = m.IAdd(id, m.UMul(id, 5)); Assignment ass = new Assignment(x, b); Statement stm = new Statement(0, ass, null); Add_mul_id_c_id_Rule rule = new Add_mul_id_c_id_Rule(new SsaEvaluationContext(ssaIds)); Assert.IsTrue(rule.Match(b)); ass.Src = rule.Transform(); Assert.AreEqual("x = id *u 0x00000006", ass.ToString()); }
public void Test1() { BinaryExpression b = m.IAdd(m.SMul(id, 4), id); Assignment ass = new Assignment(x, b); Statement stm = new Statement(0, ass, null); ssaIds[id].Uses.Add(stm); ssaIds[id].Uses.Add(stm); ctx.Statement = stm; Add_mul_id_c_id_Rule rule = new Add_mul_id_c_id_Rule(ctx); Assert.IsTrue(rule.Match(b)); Assert.AreEqual(2, ssaIds[id].Uses.Count); ass.Src = rule.Transform(); Assert.AreEqual("x = id *s 0x00000005", ass.ToString()); Assert.AreEqual(1, ssaIds[id].Uses.Count); }