summaryrefslogtreecommitdiffstats
path: root/src/front/ast.py
diff options
context:
space:
mode:
authorBenedikt Böhm <bb@xnull.de>2009-07-07 10:33:02 +0200
committerBenedikt Böhm <bb@xnull.de>2009-07-07 10:33:02 +0200
commit2ee0ef30cb01415cdb9cdbf4adc5ad279f44f661 (patch)
tree61e30710951f7ee3fd8ebbc5e059a0e6fb92316c /src/front/ast.py
parentd15276557c65de2a1941632ec9024dea261cce26 (diff)
downloadswppy-2ee0ef30cb01415cdb9cdbf4adc5ad279f44f661.tar.gz
swppy-2ee0ef30cb01415cdb9cdbf4adc5ad279f44f661.tar.xz
swppy-2ee0ef30cb01415cdb9cdbf4adc5ad279f44f661.zip
push command line params onto stack
Diffstat (limited to '')
-rw-r--r--src/front/ast.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/front/ast.py b/src/front/ast.py
index f272ca2..8b86cdd 100644
--- a/src/front/ast.py
+++ b/src/front/ast.py
@@ -28,7 +28,12 @@ class Program(Node):
def generate(self):
self.debug("Program.generate(): %s" % repr(self))
- self.emit(Op.JMP, "main")
+ Register().set_function("__start")
+ r = Register().new()
+ self.emit(Op.CALL, "main", r)
+ self.emit(Op.PUSH, r)
+ self.emit(Op.PUSH, 0)
+ self.emit(Op.SYS)
for function in self.functions:
function.generate()