From 4a5751ef9fa7775732d749d6d9688131f2aaa199 Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Sat, 13 May 2023 23:16:50 -0400 Subject: Partially fix calls --- tnslc/c_wrap.tnsl | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'tnslc/c_wrap.tnsl') diff --git a/tnslc/c_wrap.tnsl b/tnslc/c_wrap.tnsl index 7348417..9c0faf6 100644 --- a/tnslc/c_wrap.tnsl +++ b/tnslc/c_wrap.tnsl @@ -1,14 +1,15 @@ asm "extern malloc" asm "extern realloc" asm "extern free" +asm "extern printf" /; _alloc (uint size) [~void] ~void out # Mov size into proper register, and set all extras to zero - asm "mov rdi, rax" - asm "mov rsi, 0" + asm "mov rcx, rax" asm "mov rdx, 0" - asm "mov rcx, 0" + asm "mov rdi, 0" + asm "mov rsi, 0" asm "mov r8, 0" asm "mov r9, 0" asm "mov r10, 0" @@ -22,10 +23,10 @@ asm "extern free" /; _realloc (~void ptr, uint new_size) [~void] ~void out # Mov ptr and new size into proper registers, and set all extras to zero - asm "mov rdi, rax" - asm "mov rsi, rbx" - asm "mov rdx, 0" - asm "mov rcx, 0" + asm "mov rcx, rax" + asm "mov rdx, rbx" + asm "mov rdi, 0" + asm "mov rsi, 0" asm "mov r8, 0" asm "mov r9, 0" asm "mov r10, 0" @@ -39,10 +40,10 @@ asm "extern free" /; _delete (~void ptr) # setup call by clearing most values - asm "mov rdi, rax" - asm "mov rsi, 0" + asm "mov rcx, rax" asm "mov rdx, 0" - asm "mov rcx, 0" + asm "mov rdi, 0" + asm "mov rsi, 0" asm "mov r8, 0" asm "mov r9, 0" asm "mov r10, 0" @@ -51,6 +52,20 @@ asm "extern free" # there's no more to do 'cause free returns nothing ;/ +/; _printf (~void str) + # setup call by clearing most values + asm "mov rcx, rax" + asm "mov rdx, 0" + asm "mov rdi, 0" + asm "mov rsi, 0" + asm "mov r8, 0" + asm "mov r9, 0" + asm "mov r10, 0" + # do call + asm "call printf" + # there's no more to do 'cause free returns nothing +;/ + struct Vector { uint el_size, -- cgit v1.2.3