# HG changeset patch # User Windel Bouwman # Date 1372493326 -7200 # Node ID 07bfea4c1ed7626542ae68713633995016035766 # Parent 4cb47d80fd1f0b7e56d7736bdaa316a2f5c55fbc Added codegen test diff -r 4cb47d80fd1f -r 07bfea4c1ed7 python/ir/instruction.py --- a/python/ir/instruction.py Sat Jun 29 10:06:58 2013 +0200 +++ b/python/ir/instruction.py Sat Jun 29 10:08:46 2013 +0200 @@ -36,9 +36,9 @@ self.defs = [] self.uses = [] def delete(self): - for use in self.uses: - use.delete() - self.uses.clear() + while self.uses: + use = self.uses.pop() + use.delete() def addUse(self, val): self.uses.append(Use(self, val)) def addDef(self, v): diff -r 4cb47d80fd1f -r 07bfea4c1ed7 python/testcg.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/testcg.py Sat Jun 29 10:08:46 2013 +0200 @@ -0,0 +1,22 @@ +import unittest +import ppci, codegen, ir +import arm_cm3 + +class testCodeGeneration(unittest.TestCase): + def setUp(self): + self.cg = codegen.CodeGenerator(arm_cm3.armtarget) + + def testFunction(self): + m = ir.Module('tst') + f = ir.Function('tst') + m.addFunction(f) + bb = ir.BasicBlock('entry') + f.addBasicBlock(bb) + v = ir.Value('tst') + bb.addInstruction(ir.ImmLoad(v, 123)) + m.check() + obj = self.cg.generate(m) + self.assertTrue(obj) + +if __name__ == '__main__': + unittest.main()