summaryrefslogtreecommitdiff
path: root/tnslc/simple.tnsl
diff options
context:
space:
mode:
Diffstat (limited to 'tnslc/simple.tnsl')
-rw-r--r--tnslc/simple.tnsl27
1 files changed, 15 insertions, 12 deletions
diff --git a/tnslc/simple.tnsl b/tnslc/simple.tnsl
index b140c7a..d871e92 100644
--- a/tnslc/simple.tnsl
+++ b/tnslc/simple.tnsl
@@ -1,15 +1,18 @@
{}uint8 str1 = "abcd"
-{}uint8 str2 = "abce"
-
-/; main [int]
- /; loop (int i = 0; i < 4) [i++]
- /; if (str1{i} !== str2{i})
- /; if (str2{i} == 'e')
- return 3
- ;/
- return 1
- ;/
- ;/
- return 0
+{}uint8 str2 = "abcd"
+
+/; call_me [int]
+ return 4
+;/
+
+/; main (int argc, ~~uint argv) [int]
+ # On windows, the first two arguments are passed in RCX and RDX, so we need to
+ # update their positions here or else tnsl willhave garbage values in r8 and r9
+ asm "mov r8, rcx"
+ asm "mov r9, rdx"
+ # If on linux, you would use rdi and rsi instead of rcx and rdx, respectively
+
+ # return the number of arguments
+ return argc
;/