From f2c184701409d38cbce0b21c4dc2875ce9655645 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 7 Aug 2020 22:38:51 -0500 Subject: [PATCH] small bugfixes --- onyx | Bin 371888 -> 371928 bytes progs/stack_based.onyx | 7 ++++++- src/onyxwasm.c | 10 ++++++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/onyx b/onyx index 22752e469c94f02caed9df161847bdd893e2cde4..376fff4dd8ac50d50e4bcaad5a5dda682cffcf92 100755 GIT binary patch delta 19727 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 diff --git a/progs/stack_based.onyx b/progs/stack_based.onyx index f2f4f4ad..e1b2b6ee 100644 --- a/progs/stack_based.onyx +++ b/progs/stack_based.onyx @@ -8,6 +8,8 @@ use package memory ret_val :: proc (x: i32, y: i32) -> i32 { big_arr : [128] i32; + big_arr[0] = 1234; + big_arr[1] = 1234; big_arr[127] = 1234; return big_arr[127] + x + y; } @@ -22,7 +24,10 @@ sumN :: proc (x: [N] i32) -> i32 { summing :: proc (x: ^i32) -> i32 { s := 0; - for i: 0, N do s += x[i]; + for i: 0, N { + tmp :: ^i; + s += x[i]; + } return s; } diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 2d617a1a..177d1f9d 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -976,7 +976,7 @@ COMPILE_FUNC(expression, AstTyped* expr) { WI(WI_I32_ADD); } } - + break; } @@ -1034,8 +1034,10 @@ COMPILE_FUNC(expression, AstTyped* expr) { case Ast_Kind_Local: { u64 offset = 0; compile_local_location(mod, &code, (AstLocal *) aof->expr, &offset); - WID(WI_I32_CONST, offset); - WI(WI_I32_ADD); + if (offset != 0) { + WID(WI_I32_CONST, offset); + WI(WI_I32_ADD); + } break; } @@ -1423,7 +1425,7 @@ static inline b32 should_compile_function(AstFunction* fd) { } static b32 local_is_wasm_local(AstLocal* local) { - if (local->flags & Ast_Flag_Address_Taken) return 1; + if (local->flags & Ast_Flag_Address_Taken) return 0; if (local->type->kind == Type_Kind_Basic) return 1; if (local->type->kind == Type_Kind_Pointer) return 1; return 0; -- 2.25.1