summaryrefslogtreecommitdiffstats
path: root/src/front/ast.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/front/ast.py')
-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()