From efa435e651a923f3268f9f1d41950d08a46a159f Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 13 Aug 2020 11:07:22 -0500 Subject: [PATCH] things of struct type now work as lvalues --- include/onyxtypes.h | 1 + onyx | Bin 401832 -> 402888 bytes progs/stack_based.onyx | 23 +++++++++++--- src/onyxchecker.c | 14 +++++++++ src/onyxtypes.c | 4 +++ src/onyxwasm.c | 69 +++++++++++++++++++++++++++++++++++------ 6 files changed, 96 insertions(+), 15 deletions(-) diff --git a/include/onyxtypes.h b/include/onyxtypes.h index ce7e9d0c..27cd1a9d 100644 --- a/include/onyxtypes.h +++ b/include/onyxtypes.h @@ -120,6 +120,7 @@ b32 type_struct_lookup_member(Type* type, char* member, StructMember* smem); b32 type_struct_is_simple(Type* type); b32 type_is_pointer(Type* type); +b32 type_is_rawptr(Type* type); b32 type_is_array(Type* tyoe); b32 type_is_struct(Type* type); b32 type_is_bool(Type* type); diff --git a/onyx b/onyx index 1d3ffad0b2d7fcb3ba9294343118b8a8df8058f3..301d6b49f82c296dcde8f67fb7b90fe4a27bc3cb 100755 GIT binary patch delta 89150 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 R9EI8Ua11w9WP;V~{{ay|nC<`o delta 87681 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 z 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 diff --git a/progs/stack_based.onyx b/progs/stack_based.onyx index b0ac4c35..d3801d6c 100644 --- a/progs/stack_based.onyx +++ b/progs/stack_based.onyx @@ -142,9 +142,22 @@ start :: proc #export { stupid_idea(1234)() |> print(); - v : [5] Vec3; - v[2].x = 4; - v[2].y = 5; - v[2].z = 6; - mag_squared(v[2]) |> print(); + varr : [5] Vec3; + varr[2].x = 4; + varr[2].y = 5; + varr[2].z = 6; + mag_squared(varr[2]) |> print(); + + v1 : Vec3; + v1.x = 1; + v1.y = 2; + v1.z = 4; + + v2 := ^v1; + + v3 : Vec3; + vec_add(v1, *v2, ^v3); + print(v3.x); + print(v3.y); + print(v3.z); } \ No newline at end of file diff --git a/src/onyxchecker.c b/src/onyxchecker.c index a1999947..c0b50b8d 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -428,6 +428,20 @@ CHECK(binaryop_compare, AstBinaryOp** pbinop) { return 1; } + if (binop->left->type->kind == Type_Kind_Struct) { + onyx_message_add(Msg_Type_Literal, + binop->token->pos, + "invalid type for left side of binary operator"); + return 1; + } + + if (binop->right->type->kind == Type_Kind_Struct) { + onyx_message_add(Msg_Type_Literal, + binop->token->pos, + "invalid type for right side of binary operator"); + return 1; + } + if (!types_are_compatible(binop->left->type, binop->right->type)) { onyx_message_add(Msg_Type_Binop_Mismatch, binop->token->pos, diff --git a/src/onyxtypes.c b/src/onyxtypes.c index a70fc5f4..34f6c5ee 100644 --- a/src/onyxtypes.c +++ b/src/onyxtypes.c @@ -450,6 +450,10 @@ b32 type_is_pointer(Type* type) { || (type->kind == Type_Kind_Array); } +b32 type_is_rawptr(Type* type) { + return type->kind == Type_Kind_Basic && type->Basic.kind == Basic_Kind_Rawptr; +} + b32 type_is_array(Type* type) { return type->kind == Type_Kind_Array; } diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 3d3e9074..34f0d74c 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -277,6 +277,19 @@ static u64 local_raw_allocate(LocalAllocator* la, WasmType wt) { } } +static void local_raw_free(LocalAllocator* la, WasmType wt) { + i32 idx = 0; + + if (wt == WASM_TYPE_INT32) idx = 0; + if (wt == WASM_TYPE_INT64) idx = 1; + if (wt == WASM_TYPE_FLOAT32) idx = 2; + if (wt == WASM_TYPE_FLOAT64) idx = 3; + + assert(la->allocated[idx] > 0 && la->freed[idx] < la->allocated[idx]); + + la->freed[idx]++; +} + static u64 local_allocate(LocalAllocator* la, AstLocal* local) { if (local_is_wasm_local(local)) { WasmType wt = onyx_type_to_wasm_type(local->type); @@ -301,17 +314,8 @@ static u64 local_allocate(LocalAllocator* la, AstLocal* local) { static void local_free(LocalAllocator* la, AstLocal* local) { if (local_is_wasm_local(local)) { - i32 idx = 0; - WasmType wt = onyx_type_to_wasm_type(local->type); - if (wt == WASM_TYPE_INT32) idx = 0; - if (wt == WASM_TYPE_INT64) idx = 1; - if (wt == WASM_TYPE_FLOAT32) idx = 2; - if (wt == WASM_TYPE_FLOAT64) idx = 3; - - assert(la->allocated[idx] > 0 && la->freed[idx] < la->allocated[idx]); - - la->freed[idx]++; + local_raw_free(la, wt); } else { u32 size = type_size_of(local->type); @@ -357,6 +361,8 @@ COMPILE_FUNC(intrinsic_call, AstIntrinsicCall* call); COMPILE_FUNC(array_access_location, AstArrayAccess* aa, u64* offset_return); COMPILE_FUNC(field_access_location, AstFieldAccess* field, u64* offset_return); COMPILE_FUNC(local_location, AstLocal* local, u64* offset_return); +COMPILE_FUNC(struct_load, AstTyped* expr); +COMPILE_FUNC(struct_store, AstTyped* lval); COMPILE_FUNC(expression, AstTyped* expr); COMPILE_FUNC(cast, AstUnaryOp* cast); COMPILE_FUNC(return, AstReturn* ret); @@ -457,6 +463,14 @@ COMPILE_FUNC(statement, AstNode* stmt) { COMPILE_FUNC(assignment, AstBinaryOp* assign) { bh_arr(WasmInstruction) code = *pcode; + if (assign->right->type->kind == Type_Kind_Struct) { + compile_expression(mod, &code, assign->right); + compile_struct_store(mod, &code, assign->left); + + *pcode = code; + return; + } + AstTyped* lval = assign->left; if (lval->kind == Ast_Kind_Local) { @@ -512,6 +526,8 @@ COMPILE_FUNC(assignment, AstBinaryOp* assign) { COMPILE_FUNC(store_instruction, Type* type, u32 offset) { bh_arr(WasmInstruction) code = *pcode; + assert(("Should use compile_struct_store instead", type->kind != Type_Kind_Struct)); + u32 alignment = type_get_alignment_log2(type); if (type->kind == Type_Kind_Enum) { @@ -1110,6 +1126,39 @@ COMPILE_FUNC(struct_load, AstTyped* expr) { *pcode = code; } +COMPILE_FUNC(struct_store, AstTyped* lval) { + bh_arr(WasmInstruction) code = *pcode; + + assert(lval->type->kind == Type_Kind_Struct); + + u64 offset = 0; + + bh_arr_rev_each(StructMember *, smem, lval->type->Struct.memarr) { + offset = 0; + + WasmType wt = onyx_type_to_wasm_type((*smem)->type); + u64 localidx = local_raw_allocate(mod->local_alloc, wt); + + WIL(WI_LOCAL_SET, localidx); + + switch (lval->kind) { + case Ast_Kind_Local: compile_local_location(mod, &code, (AstLocal *) lval, &offset); break; + case Ast_Kind_Dereference: compile_expression(mod, &code, ((AstDereference *) lval)->expr); break; + case Ast_Kind_Array_Access: compile_array_access_location(mod, &code, (AstArrayAccess *) lval, &offset); break; + case Ast_Kind_Field_Access: compile_field_access_location(mod, &code, (AstFieldAccess *) lval, &offset); break; + + default: assert(0); + } + WIL(WI_LOCAL_GET, localidx); + + compile_store_instruction(mod, &code, (*smem)->type, offset + (*smem)->offset); + + local_raw_free(mod->local_alloc, wt); + } + + *pcode = code; +} + COMPILE_FUNC(expression, AstTyped* expr) { bh_arr(WasmInstruction) code = *pcode; -- 2.25.1