Mercurial > lcfOS
view test/testcg.py @ 335:582a1aaa3983
Added long branch format
author | Windel Bouwman |
---|---|
date | Mon, 17 Feb 2014 20:41:30 +0100 |
parents | 44f336460c2a |
children | 4d204f6f7d4e |
line wrap: on
line source
import unittest import ppci from ppci.codegen import CodeGenerator from ppci import ir from target.target_list import armtarget import outstream def genTestFunction(): m = ir.Module('tst') f = ir.Function('tst') m.add_function(f) return m, f, f.entry class testCodeGeneration(unittest.TestCase): def setUp(self): self.cg = CodeGenerator(armtarget) def testFunction(self): s = outstream.BinaryOutputStream(ppci.objectfile.ObjectFile()) m, f, bb = genTestFunction() bb.addInstruction(ir.Exp(ir.Const(123))) bb.addInstruction(ir.Jump(f.epiloog)) obj = self.cg.generate(m, s) self.assertTrue(obj) class testArmCodeGeneration(unittest.TestCase): def testStack(self): s = outstream.BinaryOutputStream(ppci.objectfile.ObjectFile()) cg = CodeGenerator(armtarget) m, f, bb = genTestFunction() bb.addInstruction(ir.Move(ir.Mem(ir.Const(1)), ir.Const(22))) bb.addInstruction(ir.Jump(f.epiloog)) cg.generate(m, s) #s.dump() if __name__ == '__main__': unittest.main()