From 82198e776761a6f3f16373d7be2be432b0e76854 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 27 Aug 2025 23:04:36 +0900 Subject: fix: stack pointer is not aligned to 8 byte boundary --- src/codegen.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/codegen.c') diff --git a/src/codegen.c b/src/codegen.c index 19d7079..2e7dc41 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -57,7 +57,8 @@ static void codegen_func_prologue(CodeGen* g, AstNode* ast) { for (int i = 0; i < ast->node_params->node_len; ++i) { fprintf(g->out, " push %s\n", param_reg(i)); } - fprintf(g->out, " sub rsp, %d\n", ast->node_stack_size); + // Note: rsp must be aligned to 8. + fprintf(g->out, " sub rsp, %d\n", to_aligned(ast->node_stack_size, 8)); } static void codegen_func_epilogue(CodeGen* g, AstNode* ast) { -- cgit v1.2.3-70-g09d2