From ac4fb25412982447af2e718d3824e6acf7d3a2dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benedikt=20B=C3=B6hm?= Date: Mon, 6 Jul 2009 21:21:19 +0200 Subject: implement print statement --- src/back/generator.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/back/generator.py') diff --git a/src/back/generator.py b/src/back/generator.py index 414cf7b..7ca2658 100644 --- a/src/back/generator.py +++ b/src/back/generator.py @@ -90,6 +90,14 @@ class Generator(object): elif tac.op == Op.RETURN: self.emit("ADD rv, r0, r%d" % tac.arg1) self.emit(tac) + elif tac.op == Op.PRINT: + r = Register().new() + self.emit("PUSH r%d" % tac.arg1) + self.emit("MOV r%d, %d" % (r, 1)) + self.emit("PUSH r%d" % r) + self.emit("SYS") + self.emit("POP r0") + self.emit("POP r0") elif isinstance(tac, FunctionPrologue): self.generate_prologue(tac.name) elif isinstance(tac, FunctionEpilogue): -- cgit v1.2.3