aboutsummaryrefslogtreecommitdiffhomepage
path: root/codegen.c
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-08-18 03:59:58 +0900
committernsfisis <nsfisis@gmail.com>2025-08-18 03:59:58 +0900
commit991245b69c53b1e2f708af34b6f829182ebf5cf2 (patch)
tree59ac5aa154ed0c60d036bacba1fdb9171f18fb94 /codegen.c
parent2a7e1667f70c5381d3b939324cc647e51134b15c (diff)
downloadducc-991245b69c53b1e2f708af34b6f829182ebf5cf2.tar.gz
ducc-991245b69c53b1e2f708af34b6f829182ebf5cf2.tar.zst
ducc-991245b69c53b1e2f708af34b6f829182ebf5cf2.zip
refactor: define va_start() as macro instead of special form
Diffstat (limited to 'codegen.c')
-rw-r--r--codegen.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/codegen.c b/codegen.c
index 4fdfe46..7b9e88c 100644
--- a/codegen.c
+++ b/codegen.c
@@ -297,8 +297,8 @@ void codegen_assign_expr(CodeGen* g, AstNode* ast) {
void codegen_func_call(CodeGen* g, AstNode* ast) {
const char* func_name = ast->name;
- if (strcmp(func_name, "va_start") == 0) {
- printf(" # va_start BEGIN\n");
+ if (strcmp(func_name, "__ducc_va_start") == 0) {
+ printf(" # __ducc_va_start BEGIN\n");
for (int i = 0; i < 6; ++i) {
printf(" mov rax, %s\n", param_reg(i));
printf(" mov [rbp-%d], rax\n", 8 + (LVAR_MAX - 4 - i) * 8);
@@ -315,7 +315,7 @@ void codegen_func_call(CodeGen* g, AstNode* ast) {
printf(" mov rdi, rbp\n");
printf(" sub rdi, %d\n", 8 + (LVAR_MAX - 4) * 8);
printf(" mov QWORD PTR [rax+16], rdi\n");
- printf(" # va_start END\n");
+ printf(" # __ducc_va_start END\n");
return;
}