summaryrefslogtreecommitdiff
path: root/tnslc/vector_test.tnsl
diff options
context:
space:
mode:
Diffstat (limited to 'tnslc/vector_test.tnsl')
-rw-r--r--tnslc/vector_test.tnsl28
1 files changed, 28 insertions, 0 deletions
diff --git a/tnslc/vector_test.tnsl b/tnslc/vector_test.tnsl
new file mode 100644
index 0000000..bfb41cc
--- /dev/null
+++ b/tnslc/vector_test.tnsl
@@ -0,0 +1,28 @@
+:include "c_wrap.tnsl"
+:include "vector.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 = _alert{0}
+ vec.push(~a)
+ vec.push(~a)
+ a = _alert{len _alert - 2}
+ vec.push(~a)
+ a = 0
+ vec.push(~a)
+ _printf(vec.get(0))
+ _printf(vec.get(0))
+ vec.clean()
+ return 0
+;/ \ No newline at end of file