From 7fd43788215c32485bf2028756e0dcd63eee498a Mon Sep 17 00:00:00 2001 From: Suleyman Farajli Date: Sat, 28 Dec 2024 16:40:51 +0400 Subject: `return` function added --- src/main.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main.go b/src/main.go index ae7524c..a31b5b5 100644 --- a/src/main.go +++ b/src/main.go @@ -22,7 +22,7 @@ func readfile(path string) []string { tmp := reg.Split(string(dat), -1); /* TODO: add comments */ - for i := range tmp{ + for i := range tmp { if tmp[i] != "" { raw = append(raw, tmp[i]); } @@ -137,6 +137,12 @@ func compile(raw[]string) { fmt.Printf(" jmp .loop%d\n", looplabels[len(looplabels) - 1]) fmt.Printf(".endloop%d:\n", looplabels[len(looplabels) - 1]) looplabels = looplabels[:len(looplabels) - 1] + /* Functions */ + case "return": + print(" ;; RETURN") + print(" pop rdi") + print(" mov rax, 60") + print(" syscall") default: panic("invalid word") @@ -221,7 +227,7 @@ func compile(raw[]string) { print(" syscall"); print(" nop"); print(" leave"); - print(" ret") + print(" ret"); } func main() { -- cgit v1.2.3