summaryrefslogtreecommitdiff
path: root/tnslc/tnslc_wrapped.tnsl
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2023-05-13 23:16:50 -0400
committerKyle Gunger <kgunger12@gmail.com>2023-05-13 23:16:50 -0400
commit4a5751ef9fa7775732d749d6d9688131f2aaa199 (patch)
tree010e854a04e6c31372469e81503d59a1c7d3e863 /tnslc/tnslc_wrapped.tnsl
parente458ba03aab8a2eeac50bb133a6ad4847c0e79a5 (diff)
Partially fix calls
Diffstat (limited to 'tnslc/tnslc_wrapped.tnsl')
-rw-r--r--tnslc/tnslc_wrapped.tnsl20
1 files changed, 20 insertions, 0 deletions
diff --git a/tnslc/tnslc_wrapped.tnsl b/tnslc/tnslc_wrapped.tnsl
new file mode 100644
index 0000000..398db47
--- /dev/null
+++ b/tnslc/tnslc_wrapped.tnsl
@@ -0,0 +1,20 @@
+:include "c_wrap.tnsl"
+
+/; 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 will have 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
+ # simply comment out the bove asm, and uncomment the below lines
+ # asm "mov r8, rdi"
+ # asm "mov r9, rsi"
+
+ Vector vec
+ vec.start(1)
+ uint8 a = 1
+ vec.push(~a)
+ ~uint8 v = vec.get(0)
+ return v`
+;/ \ No newline at end of file