diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-07-29 19:39:22 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-08-15 10:04:39 +0900 |
| commit | 144875f4687e8cfa77f8b1b7e5ff8790f8f5b684 (patch) | |
| tree | b32cb589dd4e7837e12852d2a59b20b9d0cacd69 /codegen.c | |
| parent | 412854c38e1dd79f59b48d5e43ab16c86e587145 (diff) | |
| download | ducc-144875f4687e8cfa77f8b1b7e5ff8790f8f5b684.tar.gz ducc-144875f4687e8cfa77f8b1b7e5ff8790f8f5b684.tar.zst ducc-144875f4687e8cfa77f8b1b7e5ff8790f8f5b684.zip | |
feat: properly calculate stack offset of local variables
Diffstat (limited to 'codegen.c')
| -rw-r--r-- | codegen.c | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -268,9 +268,8 @@ void codegen_func_call(CodeGen* g, AstNode* ast) { } void codegen_lvar(CodeGen* g, AstNode* ast, GenMode gen_mode) { - int offset = 8 + ast->node_idx * 8; printf(" mov rax, rbp\n"); - printf(" sub rax, %d\n", offset); + printf(" sub rax, %d\n", ast->node_stack_offset); printf(" push rax\n"); if (gen_mode == GenMode_rval) { codegen_lval2rval(ast->ty); |
