From 325085c3325796fa89733ded847b1b983944457b Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 20 Jul 2020 13:49:18 -0500 Subject: [PATCH] Added initial implementation of structs --- .vimspector.json | 2 +- include/onyxastnodes.h | 53 ++++++-- include/onyxmsgs.h | 2 + include/onyxtypes.h | 13 +- onyx | Bin 275368 -> 289584 bytes progs/structs.onyx | 129 +++++++++++++++++++ src/onyx.c | 49 +++++-- src/onyxchecker.c | 63 ++++++++- src/onyxmsgs.c | 2 + src/onyxparser.c | 175 +++++++++++++++---------- src/onyxsymres.c | 44 +++++-- src/onyxtypes.c | 159 +++++++++++++++++++++++ src/onyxutils.c | 8 +- src/onyxwasm.c | 284 ++++++++++++++++++++++------------------- 14 files changed, 750 insertions(+), 233 deletions(-) create mode 100644 progs/structs.onyx diff --git a/.vimspector.json b/.vimspector.json index 404230c7..f64d90eb 100644 --- a/.vimspector.json +++ b/.vimspector.json @@ -6,7 +6,7 @@ "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/onyx", - "args": ["progs/arrays.onyx"], + "args": ["progs/structs.onyx"], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 14281d03..f33ef189 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -19,6 +19,7 @@ typedef struct AstArgument AstArgument; typedef struct AstAddressOf AstAddressOf; typedef struct AstDereference AstDereference; typedef struct AstArrayAccess AstArrayAccess; +typedef struct AstFieldAccess AstFieldAccess; typedef struct AstAssign AstAssign; typedef struct AstReturn AstReturn; @@ -32,6 +33,8 @@ typedef struct AstType AstType; typedef struct AstBasicType AstBasicType; typedef struct AstPointerType AstPointerType; typedef struct AstFunctionType AstFunctionType; +typedef struct AstStructType AstStructType; +typedef struct AstStructMember AstStructMember; typedef struct AstBinding AstBinding; typedef struct AstUse AstUse; @@ -71,8 +74,11 @@ typedef enum AstKind { Ast_Kind_Basic_Type, Ast_Kind_Pointer_Type, Ast_Kind_Function_Type, + Ast_Kind_Struct_Type, Ast_Kind_Type_End, + Ast_Kind_Struct_Member, + Ast_Kind_NumLit, Ast_Kind_StrLit, Ast_Kind_Param, @@ -83,6 +89,7 @@ typedef enum AstKind { Ast_Kind_Address_Of, Ast_Kind_Dereference, Ast_Kind_Array_Access, + Ast_Kind_Field_Access, Ast_Kind_If, Ast_Kind_For, @@ -97,17 +104,20 @@ typedef enum AstKind { // only 32-bits of flags to play with typedef enum AstFlags { // Top-level flags - Ast_Flag_Exported = BH_BIT(0), - Ast_Flag_Foreign = BH_BIT(1), - Ast_Flag_Const = BH_BIT(2), - Ast_Flag_Comptime = BH_BIT(3), + Ast_Flag_Exported = BH_BIT(0), + Ast_Flag_Foreign = BH_BIT(1), + Ast_Flag_Const = BH_BIT(2), + Ast_Flag_Comptime = BH_BIT(3), // Function flags - Ast_Flag_Inline = BH_BIT(8), - Ast_Flag_Intrinsic = BH_BIT(9), + Ast_Flag_Inline = BH_BIT(8), + Ast_Flag_Intrinsic = BH_BIT(9), // Expression flags - Ast_Flag_Expr_Ignored = BH_BIT(8), + Ast_Flag_Expr_Ignored = BH_BIT(8), + + // Type flags + Ast_Flag_Type_Is_Resolved = BH_BIT(8), } AstFlags; typedef enum UnaryOp { @@ -210,6 +220,7 @@ struct AstArgument { AstTyped_base; AstTyped *value; }; struct AstAddressOf { AstTyped_base; AstTyped *expr; }; struct AstDereference { AstTyped_base; AstTyped *expr; }; struct AstArrayAccess { AstTyped_base; AstTyped *addr; AstTyped *expr; u64 elem_size; }; +struct AstFieldAccess { AstTyped_base; AstTyped *expr; u64 offset; }; // Intruction Node struct AstReturn { AstNode_base; AstTyped* expr; }; @@ -243,13 +254,24 @@ struct AstIf { // without the 'next' member. This is because types // can't be in expressions so a 'next' thing // doesn't make sense. -#define AstType_members { AstKind kind; u32 flags; char* name; } +#define AstType_members { AstKind kind; u32 flags; OnyxToken* token; char* name; } #define AstType_base struct AstType_members; struct AstType AstType_members; struct AstBasicType { AstType_base; Type* type; }; struct AstPointerType { AstType_base; AstType* elem; }; struct AstFunctionType { AstType_base; AstType* return_type; u64 param_count; AstType* params[]; }; +struct AstStructType { + AstType_base; + + bh_arr(AstStructMember *) members; + + // NOTE: Used to cache the actual type, since building + // a struct type is kind of complicated and should + // only happen once. + Type *stcache; +}; +struct AstStructMember { AstTyped_base; u64 offset; }; // Top level nodes struct AstBinding { AstTyped_base; AstNode* node; }; @@ -300,11 +322,14 @@ struct AstOverloadedFunction { // processed later down the pipeline. typedef enum EntityType { Entity_Type_Unknown, - Entity_Type_Function, - Entity_Type_Overloaded_Function, - Entity_Type_Global, + Entity_Type_Function_Header, + Entity_Type_Global_Header, + Entity_Type_Expression, Entity_Type_String_Literal, - Entity_Type_Expression + Entity_Type_Struct, + Entity_Type_Global, + Entity_Type_Overloaded_Function, + Entity_Type_Function, } EntityType; typedef struct Entity { @@ -316,6 +341,7 @@ typedef struct Entity { AstGlobal *global; AstTyped *expr; AstStrLit *strlit; + AstStructType *struct_type; }; } Entity; @@ -362,7 +388,8 @@ static inline b32 is_lval(AstNode* node) { return (node->kind == Ast_Kind_Local) || (node->kind == Ast_Kind_Global) || (node->kind == Ast_Kind_Dereference) - || (node->kind == Ast_Kind_Array_Access); + || (node->kind == Ast_Kind_Array_Access) + || (node->kind == Ast_Kind_Field_Access); } static inline b32 binop_is_assignment(AstBinaryOp* binop) { diff --git a/include/onyxmsgs.h b/include/onyxmsgs.h index 9c98c2d0..2af7b721 100644 --- a/include/onyxmsgs.h +++ b/include/onyxmsgs.h @@ -28,6 +28,8 @@ typedef enum MsgType { Msg_Type_Function_Return_Mismatch, Msg_Type_Function_Param_Mismatch, + Msg_Type_Duplicate_Member, + Msg_Type_Unresolved_Type, Msg_Type_Unresolved_Symbol, diff --git a/include/onyxtypes.h b/include/onyxtypes.h index 485a0d48..f7feda57 100644 --- a/include/onyxtypes.h +++ b/include/onyxtypes.h @@ -46,10 +46,16 @@ typedef struct TypeBasic { // NOTE: Forward declaration for some of the types below typedef struct Type Type; +typedef struct StructMember { + u64 offset; + Type *type; +} StructMember; + #define TYPE_KINDS \ TYPE_KIND(Basic, TypeBasic) \ TYPE_KIND(Pointer, struct { TypeBasic base; Type *elem; }) \ - TYPE_KIND(Function, struct { Type *return_type; u64 param_count; Type* params[]; }) + TYPE_KIND(Function, struct { Type *return_type; u64 param_count; Type* params[]; }) \ + TYPE_KIND(Struct, struct { char* name; u32 size; u32 mem_count; bh_table(StructMember) members; }) typedef enum TypeKind { Type_Kind_Invalid, @@ -85,13 +91,18 @@ extern Type basic_types[]; struct AstType; b32 types_are_compatible(Type* t1, Type* t2); +u32 type_size_of(Type* type); Type* type_build_from_ast(bh_allocator alloc, struct AstType* type_node); Type* type_make_pointer(bh_allocator alloc, Type* to); const char* type_get_name(Type* type); +u32 type_get_alignment_log2(Type* type); + +StructMember type_struct_lookup_member(Type* type, char* member); b32 type_is_pointer(Type* type); +b32 type_is_struct(Type* type); b32 type_is_bool(Type* type); #endif // #ifndef ONYX_TYPES diff --git a/onyx b/onyx index c3e5c62f1665c043594d570501cc361a9c825401..31c4540f6fa05819643c6f039f7520aa5d69acfc 100755 GIT binary patch literal 289584 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ǽxS+8E> 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 literal 275368 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%0DcUd0~~h?AJ79H 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 diff --git a/progs/structs.onyx b/progs/structs.onyx new file mode 100644 index 00000000..55c676e0 --- /dev/null +++ b/progs/structs.onyx @@ -0,0 +1,129 @@ +use "progs/print_funcs" +use "progs/intrinsics" + +Vec3 :: struct { + x : f32; + y : f32; + z : f32; +} + +Foo :: struct { + v : Vec3; + i : i32; + l : i64; + f : f32; + d : f64; + foo : ^Foo; +} + +alloc :: proc (size: u32) -> rawptr { + heap_u32 :: __heap_start as ^u32; + + curr_offset := *heap_u32; + if curr_offset == 0 curr_offset = 8; + + *heap_u32 = curr_offset + size; + + return ((__heap_start as u32) + curr_offset) as rawptr; +} + +foo_make :: proc -> ^Foo { + return alloc(40) as ^Foo; +} + +foo_get :: proc (fooarr: ^Foo, i: i32) -> ^Foo { + return ^fooarr[i]; +} + +proc #export "main" { + // foo := foo_make(); + // other_foo := foo_make(); + // other_foo.i = 1234; + + // foo.foo = other_foo; + // print(foo.foo.i); + + foo1 := foo_make(); + foo1.v.y = 123.0f; + print(foo1.v.y); + + foo := alloc(40* 5) as ^Foo; + + for i: 1, 6 { + foo[i - 1].v.x = (i + 3) as f32; + foo[i - 1].v.y = (i + 4) as f32; + + foo[i - 1].i = i; + foo[i - 1].l = (i * 10) as i64; + foo[i - 1].f = (i * 100) as f32; + foo[i - 1].d = (i * 1000) as f64; + + foo[i - 1].foo = foo; + } + + print(foo[3].v.x); // 7 + print(foo[4].i); // 5 + print(foo[2].d); // 3000.0 + print(foo[3].f); // 400.0 + print(foo[0].l); // 10 + + print(foo as i32); + print((^(foo[3].l)) as i32); // 84 + + print(foo[2].foo[4].foo[3].f); // 400.0 + + foo_get(foo, 2).f = 1234.5f; + print(foo[2].f); + + print(1000000000000); + link_test(); +} + +Mut1 :: struct { + bar : i32; + other : Mut2; +} + +Mut2 :: struct { + foo : i32; + other : ^Foo; +} + +mut_func :: proc #export (mut: ^Mut1) -> ^Foo { + return mut.other.other; +} + + +Link :: struct { + data : i32; + other_data : i32; + next : ^Link; +} + +link_create :: proc (data: i32, parent: ^Link) -> ^Link { + link := alloc(12) as ^Link; + link.data = data; + link.other_data = 1234; + link.next = parent; + return link; +} + +link_print :: proc (start: ^Link) { + walker := start; + while (walker as i32) != 0 { + print(walker.next.data); + walker = walker.next; + } +} + +link_test :: proc #export "main2" { + dummy :: "H"; + + node1 := link_create(1, 0 as ^Link); + node2 := link_create(2, node1); + node3 := link_create(3, node2); + node4 := link_create(4, node3); + node5 := link_create(5, node4); + + link_print(node5); +} \ No newline at end of file diff --git a/src/onyx.c b/src/onyx.c index a2939441..a19f67aa 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -166,6 +166,10 @@ static ParseResults parse_source_file(CompilerState* compiler_state, bh_file_con return onyx_parse(&parser); } +static i32 sort_entities(const void* e1, const void* e2) { + return ((Entity *)e1)->type - ((Entity *)e2)->type; +} + static void merge_parse_results(CompilerState* compiler_state, ParseResults* results) { bh_arr_each(AstUse *, use_node, results->uses) { char* formatted_name = bh_aprintf( @@ -179,39 +183,66 @@ static void merge_parse_results(CompilerState* compiler_state, ParseResults* res bh_arr_each(AstBinding *, binding_node, results->bindings) bh_arr_push(compiler_state->prog_info.bindings, *binding_node); + Entity ent; bh_arr_each(AstNode *, node, results->nodes_to_process) { - Entity ent = { Entity_Type_Unknown }; - AstKind nkind = (*node)->kind; switch (nkind) { - case Ast_Kind_Function: + case Ast_Kind_Function: { + ent.type = Entity_Type_Function_Header; + ent.function = (AstFunction *) *node; + bh_arr_push(compiler_state->prog_info.entities, ent); + ent.type = Entity_Type_Function; ent.function = (AstFunction *) *node; + bh_arr_push(compiler_state->prog_info.entities, ent); break; + } - case Ast_Kind_Overloaded_Function: + case Ast_Kind_Overloaded_Function: { ent.type = Entity_Type_Overloaded_Function; ent.overloaded_function = (AstOverloadedFunction *) *node; + bh_arr_push(compiler_state->prog_info.entities, ent); break; + } + + case Ast_Kind_Global: { + ent.type = Entity_Type_Global_Header; + ent.global = (AstGlobal *) *node; + bh_arr_push(compiler_state->prog_info.entities, ent); - case Ast_Kind_Global: ent.type = Entity_Type_Global; ent.global = (AstGlobal *) *node; + bh_arr_push(compiler_state->prog_info.entities, ent); break; + } - case Ast_Kind_StrLit: + case Ast_Kind_StrLit: { ent.type = Entity_Type_String_Literal; ent.strlit = (AstStrLit *) *node; + bh_arr_push(compiler_state->prog_info.entities, ent); + break; + } + + case Ast_Kind_Struct_Type: { + ent.type = Entity_Type_Struct; + ent.struct_type = (AstStructType *) *node; + bh_arr_push(compiler_state->prog_info.entities, ent); break; + } - default: + default: { ent.type = Entity_Type_Expression; ent.expr = (AstTyped *) *node; + bh_arr_push(compiler_state->prog_info.entities, ent); break; + } } - - bh_arr_push(compiler_state->prog_info.entities, ent); } + + qsort(compiler_state->prog_info.entities, + bh_arr_length(compiler_state->prog_info.entities), + sizeof(Entity), + sort_entities); } static CompilerProgress process_source_file(CompilerState* compiler_state, char* filename) { diff --git a/src/onyxchecker.c b/src/onyxchecker.c index d5626dcb..0ff7d4fb 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -1,6 +1,7 @@ #define BH_DEBUG #include "onyxsempass.h" #include "onyxparser.h" +#include "onyxutils.h" #define CHECK(kind, ...) static b32 check_ ## kind (__VA_ARGS__) @@ -17,9 +18,11 @@ CHECK(expression, AstTyped* expr); CHECK(address_of, AstAddressOf* aof); CHECK(dereference, AstDereference* deref); CHECK(array_access, AstArrayAccess* expr); +CHECK(field_access, AstFieldAccess* field); CHECK(global, AstGlobal* global); CHECK(function, AstFunction* func); CHECK(overloaded_function, AstOverloadedFunction* func); +CHECK(struct, AstStructType* s_node); static inline void fill_in_type(AstTyped* node) { if (node->type == NULL) @@ -380,7 +383,8 @@ CHECK(address_of, AstAddressOf* aof) { if (check_expression(aof->expr)) return 1; if (aof->expr->kind != Ast_Kind_Array_Access - && aof->expr->kind != Ast_Kind_Dereference) { + && aof->expr->kind != Ast_Kind_Dereference + && aof->expr->kind != Ast_Kind_Field_Access) { onyx_message_add(Msg_Type_Literal, aof->token->pos, "cannot take the address of this"); @@ -434,7 +438,26 @@ CHECK(array_access, AstArrayAccess* aa) { } aa->type = aa->addr->type->Pointer.elem; - aa->elem_size = aa->type->Basic.size; + aa->elem_size = type_size_of(aa->type); + + return 0; +} + +CHECK(field_access, AstFieldAccess* field) { + if (check_expression(field->expr)) return 1; + + if (!type_is_struct(field->expr->type)) { + onyx_message_add(Msg_Type_Literal, + field->token->pos, + "expected expression of kind struct or pointer to struct"); + return 1; + } + + token_toggle_end(field->token); + StructMember smem = type_struct_lookup_member(field->expr->type, field->token->text); + field->offset = smem.offset; + field->type = smem.type; + token_toggle_end(field->token); return 0; } @@ -485,6 +508,7 @@ CHECK(expression, AstTyped* expr) { case Ast_Kind_Address_Of: retval = check_address_of((AstAddressOf *) expr); break; case Ast_Kind_Dereference: retval = check_dereference((AstDereference *) expr); break; case Ast_Kind_Array_Access: retval = check_array_access((AstArrayAccess *) expr); break; + case Ast_Kind_Field_Access: retval = check_field_access((AstFieldAccess *) expr); break; case Ast_Kind_Global: if (expr->type == NULL) { @@ -657,6 +681,34 @@ CHECK(overloaded_function, AstOverloadedFunction* func) { return 0; } +CHECK(struct, AstStructType* s_node) { + bh_table(i32) mem_set; + bh_table_init(global_heap_allocator, mem_set, bh_arr_length(s_node->members)); + + bh_arr_each(AstStructMember *, member, s_node->members) { + token_toggle_end((*member)->token); + + if (bh_table_has(i32, mem_set, (*member)->token->text)) { + onyx_message_add(Msg_Type_Duplicate_Member, + (*member)->token->pos, + (*member)->token->text); + + token_toggle_end((*member)->token); + return 1; + } + + bh_table_put(i32, mem_set, (*member)->token->text, 1); + token_toggle_end((*member)->token); + } + + bh_table_free(mem_set); + + // NOTE: fills in the stcache + type_build_from_ast(semstate.allocator, (AstType *) s_node); + + return 0; +} + CHECK(node, AstNode* node) { switch (node->kind) { case Ast_Kind_Function: return check_function((AstFunction *) node); @@ -694,8 +746,15 @@ void onyx_type_check(ProgramInfo* program) { if (check_expression(entity->expr)) return; break; + case Entity_Type_Struct: + if (check_struct(entity->struct_type)) return; + break; + case Entity_Type_String_Literal: break; + case Entity_Type_Function_Header: break; + case Entity_Type_Global_Header: break; + default: DEBUG_HERE; break; } } diff --git a/src/onyxmsgs.c b/src/onyxmsgs.c index 2a979dff..2df639bf 100644 --- a/src/onyxmsgs.c +++ b/src/onyxmsgs.c @@ -26,6 +26,8 @@ static const char* msg_formats[] = { "returning '%s' from function that returns '%s'", "function '%b' expected type '%s' in position '%d', got '%s'", + "duplicate declaration of struct member '%s'", + "unable to resolve type for symbol '%b'", "unable to resolve symbol '%b'", }; diff --git a/src/onyxparser.c b/src/onyxparser.c index 03de4daa..fe9ec61d 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -14,22 +14,23 @@ static void unconsume_token(OnyxParser* parser); static b32 is_terminating_token(TokenType token_type); static OnyxToken* expect_token(OnyxParser* parser, TokenType token_type); -static AstNumLit* parse_numeric_literal(OnyxParser* parser); -static AstTyped* parse_factor(OnyxParser* parser); -static AstTyped* parse_expression(OnyxParser* parser); -static AstIf* parse_if_stmt(OnyxParser* parser); -static AstWhile* parse_while_stmt(OnyxParser* parser); -static AstFor* parse_for_stmt(OnyxParser* parser); -static b32 parse_symbol_declaration(OnyxParser* parser, AstNode** ret); -static AstReturn* parse_return_statement(OnyxParser* parser); -static AstBlock* parse_block(OnyxParser* parser); -static AstNode* parse_statement(OnyxParser* parser); -static AstType* parse_type(OnyxParser* parser); -static AstLocal* parse_function_params(OnyxParser* parser); -static AstFunction* parse_function_definition(OnyxParser* parser); -static AstTyped* parse_global_declaration(OnyxParser* parser); -static AstTyped* parse_top_level_expression(OnyxParser* parser); -static AstNode* parse_top_level_statement(OnyxParser* parser); +static AstNumLit* parse_numeric_literal(OnyxParser* parser); +static AstTyped* parse_factor(OnyxParser* parser); +static AstTyped* parse_expression(OnyxParser* parser); +static AstIf* parse_if_stmt(OnyxParser* parser); +static AstWhile* parse_while_stmt(OnyxParser* parser); +static AstFor* parse_for_stmt(OnyxParser* parser); +static b32 parse_symbol_declaration(OnyxParser* parser, AstNode** ret); +static AstReturn* parse_return_statement(OnyxParser* parser); +static AstBlock* parse_block(OnyxParser* parser); +static AstNode* parse_statement(OnyxParser* parser); +static AstType* parse_type(OnyxParser* parser); +static AstStructType* parse_struct(OnyxParser* parser); +static AstLocal* parse_function_params(OnyxParser* parser); +static AstFunction* parse_function_definition(OnyxParser* parser); +static AstTyped* parse_global_declaration(OnyxParser* parser); +static AstTyped* parse_top_level_expression(OnyxParser* parser); +static AstNode* parse_top_level_statement(OnyxParser* parser); static void consume_token(OnyxParser* parser) { parser->prev = parser->curr; @@ -270,27 +271,44 @@ static AstTyped* parse_factor(OnyxParser* parser) { return NULL; } - while (parser->curr->type == '[') { - AstArrayAccess* aa_node = make_node(AstArrayAccess, Ast_Kind_Array_Access); - aa_node->token = expect_token(parser, '['); - aa_node->addr = retval; - aa_node->expr = parse_expression(parser); + while (parser->curr->type == '[' || parser->curr->type == Token_Type_Keyword_Cast + || parser->curr->type == '.') { - expect_token(parser, ']'); + switch ((u16) parser->curr->type) { + case '[': { + AstArrayAccess* aa_node = make_node(AstArrayAccess, Ast_Kind_Array_Access); + aa_node->token = expect_token(parser, '['); + aa_node->addr = retval; + aa_node->expr = parse_expression(parser); - retval = (AstTyped *) aa_node; - } + expect_token(parser, ']'); - while (parser->curr->type == Token_Type_Keyword_Cast) { + retval = (AstTyped *) aa_node; + break; + } - AstUnaryOp* cast_node = make_node(AstUnaryOp, Ast_Kind_Unary_Op); - cast_node->token = expect_token(parser, Token_Type_Keyword_Cast); - cast_node->type_node = parse_type(parser); - cast_node->operation = Unary_Op_Cast; - cast_node->expr = retval; - retval = (AstTyped *) cast_node; - } + case '.': { + consume_token(parser); + AstFieldAccess* field = make_node(AstFieldAccess, Ast_Kind_Field_Access); + field->token = expect_token(parser, Token_Type_Symbol); + field->expr = retval; + retval = (AstTyped *) field; + break; + } + + case Token_Type_Keyword_Cast: { + AstUnaryOp* cast_node = make_node(AstUnaryOp, Ast_Kind_Unary_Op); + cast_node->token = expect_token(parser, Token_Type_Keyword_Cast); + cast_node->type_node = parse_type(parser); + cast_node->operation = Unary_Op_Cast; + cast_node->expr = retval; + + retval = (AstTyped *) cast_node; + break; + } + } + } return retval; } @@ -691,9 +709,9 @@ static AstType* parse_type(OnyxParser* parser) { while (1) { if (parser->curr->type == '^') { - consume_token(parser); AstPointerType* new = make_node(AstPointerType, Ast_Kind_Pointer_Type); new->flags |= Basic_Flag_Pointer; + new->token = expect_token(parser, '^'); *next_insertion = (AstType *) new; next_insertion = &new->elem; } @@ -722,6 +740,28 @@ static AstType* parse_type(OnyxParser* parser) { return root; } +static AstStructType* parse_struct(OnyxParser* parser) { + AstStructType* s_node = make_node(AstStructType, Ast_Kind_Struct_Type); + s_node->token = expect_token(parser, Token_Type_Keyword_Struct); + + bh_arr_new(global_heap_allocator, s_node->members, 4); + + expect_token(parser, '{'); + while (parser->curr->type != '}') { + AstStructMember* mem = make_node(AstStructMember, Ast_Kind_Struct_Member); + mem->offset = 0; + + mem->token = expect_token(parser, Token_Type_Symbol); + expect_token(parser, ':'); + mem->type_node = parse_type(parser); + expect_token(parser, ';'); + + bh_arr_push(s_node->members, mem); + } + + return s_node; +} + // e // '(' (: ,?)* ')' static AstLocal* parse_function_params(OnyxParser* parser) { @@ -935,6 +975,9 @@ static AstTyped* parse_top_level_expression(OnyxParser* parser) { else if (parser->curr->type == Token_Type_Keyword_Global) { return parse_global_declaration(parser); } + else if (parser->curr->type == Token_Type_Keyword_Struct) { + return (AstTyped *) parse_struct(parser); + } else { return parse_expression(parser); } @@ -944,54 +987,58 @@ static AstTyped* parse_top_level_expression(OnyxParser* parser) { // :: static AstNode* parse_top_level_statement(OnyxParser* parser) { switch (parser->curr->type) { - case Token_Type_Keyword_Use: - { - AstUse* use_node = make_node(AstUse, Ast_Kind_Use); - use_node->token = expect_token(parser, Token_Type_Keyword_Use); - use_node->filename = expect_token(parser, Token_Type_Literal_String); + case Token_Type_Keyword_Use: { + AstUse* use_node = make_node(AstUse, Ast_Kind_Use); + use_node->token = expect_token(parser, Token_Type_Keyword_Use); + use_node->filename = expect_token(parser, Token_Type_Literal_String); - return (AstNode *) use_node; - } + return (AstNode *) use_node; + } case Token_Type_Keyword_Proc: parse_top_level_expression(parser); return NULL; - case Token_Type_Symbol: - { - OnyxToken* symbol = parser->curr; - consume_token(parser); + case Token_Type_Symbol: { + OnyxToken* symbol = parser->curr; + consume_token(parser); - expect_token(parser, ':'); - expect_token(parser, ':'); + expect_token(parser, ':'); + expect_token(parser, ':'); - AstTyped* node = parse_top_level_expression(parser); + AstTyped* node = parse_top_level_expression(parser); - if (node->kind == Ast_Kind_Function) { - AstFunction* func = (AstFunction *) node; + if (node->kind == Ast_Kind_Function) { + AstFunction* func = (AstFunction *) node; - if (func->exported_name == NULL) - func->exported_name = symbol; + if (func->exported_name == NULL) + func->exported_name = symbol; - } else if (node->kind == Ast_Kind_Global) { - AstGlobal* global = (AstGlobal *) node; + } else if (node->kind == Ast_Kind_Global) { + AstGlobal* global = (AstGlobal *) node; - if (global->exported_name == NULL) - global->exported_name = symbol; + if (global->exported_name == NULL) + global->exported_name = symbol; - } else if (node->kind != Ast_Kind_Overloaded_Function - && node->kind != Ast_Kind_StrLit) { - // HACK - bh_arr_push(parser->results.nodes_to_process, (AstNode *) node); - } + } else if (node->kind != Ast_Kind_Overloaded_Function + && node->kind != Ast_Kind_StrLit) { - AstBinding* binding = make_node(AstBinding, Ast_Kind_Binding); - binding->token = symbol; - binding->node = (AstNode *) node; + if (node->kind == Ast_Kind_Struct_Type) { + ((AstStructType *)node)->name = bh_aprintf(global_heap_allocator, + "%b", symbol->text, symbol->length); + } - return (AstNode *) binding; + // HACK + bh_arr_push(parser->results.nodes_to_process, (AstNode *) node); } + AstBinding* binding = make_node(AstBinding, Ast_Kind_Binding); + binding->token = symbol; + binding->node = (AstNode *) node; + + return (AstNode *) binding; + } + default: break; } diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 02cff8b6..28a62d69 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -1,19 +1,19 @@ #define BH_DEBUG #include "onyxsempass.h" -AstBasicType basic_type_void = { { Ast_Kind_Basic_Type, 0, "void" }, &basic_types[Basic_Kind_Void] }; -AstBasicType basic_type_bool = { { Ast_Kind_Basic_Type, 0, "bool" }, &basic_types[Basic_Kind_Bool] }; -AstBasicType basic_type_i8 = { { Ast_Kind_Basic_Type, 0, "i8" }, &basic_types[Basic_Kind_I8] }; -AstBasicType basic_type_u8 = { { Ast_Kind_Basic_Type, 0, "u8" }, &basic_types[Basic_Kind_U8] }; -AstBasicType basic_type_i16 = { { Ast_Kind_Basic_Type, 0, "i16" }, &basic_types[Basic_Kind_I16] }; -AstBasicType basic_type_u16 = { { Ast_Kind_Basic_Type, 0, "u16" }, &basic_types[Basic_Kind_U16] }; -AstBasicType basic_type_i32 = { { Ast_Kind_Basic_Type, 0, "i32" }, &basic_types[Basic_Kind_I32] }; -AstBasicType basic_type_u32 = { { Ast_Kind_Basic_Type, 0, "u32" }, &basic_types[Basic_Kind_U32] }; -AstBasicType basic_type_i64 = { { Ast_Kind_Basic_Type, 0, "i64" }, &basic_types[Basic_Kind_I64] }; -AstBasicType basic_type_u64 = { { Ast_Kind_Basic_Type, 0, "u64" }, &basic_types[Basic_Kind_U64] }; -AstBasicType basic_type_f32 = { { Ast_Kind_Basic_Type, 0, "f32" }, &basic_types[Basic_Kind_F32] }; -AstBasicType basic_type_f64 = { { Ast_Kind_Basic_Type, 0, "f64" }, &basic_types[Basic_Kind_F64] }; -AstBasicType basic_type_rawptr = { { Ast_Kind_Basic_Type, 0, "rawptr" }, &basic_types[Basic_Kind_Rawptr] }; +AstBasicType basic_type_void = { { Ast_Kind_Basic_Type, 0, NULL, "void" }, &basic_types[Basic_Kind_Void] }; +AstBasicType basic_type_bool = { { Ast_Kind_Basic_Type, 0, NULL, "bool" }, &basic_types[Basic_Kind_Bool] }; +AstBasicType basic_type_i8 = { { Ast_Kind_Basic_Type, 0, NULL, "i8" }, &basic_types[Basic_Kind_I8] }; +AstBasicType basic_type_u8 = { { Ast_Kind_Basic_Type, 0, NULL, "u8" }, &basic_types[Basic_Kind_U8] }; +AstBasicType basic_type_i16 = { { Ast_Kind_Basic_Type, 0, NULL, "i16" }, &basic_types[Basic_Kind_I16] }; +AstBasicType basic_type_u16 = { { Ast_Kind_Basic_Type, 0, NULL, "u16" }, &basic_types[Basic_Kind_U16] }; +AstBasicType basic_type_i32 = { { Ast_Kind_Basic_Type, 0, NULL, "i32" }, &basic_types[Basic_Kind_I32] }; +AstBasicType basic_type_u32 = { { Ast_Kind_Basic_Type, 0, NULL, "u32" }, &basic_types[Basic_Kind_U32] }; +AstBasicType basic_type_i64 = { { Ast_Kind_Basic_Type, 0, NULL, "i64" }, &basic_types[Basic_Kind_I64] }; +AstBasicType basic_type_u64 = { { Ast_Kind_Basic_Type, 0, NULL, "u64" }, &basic_types[Basic_Kind_U64] }; +AstBasicType basic_type_f32 = { { Ast_Kind_Basic_Type, 0, NULL, "f32" }, &basic_types[Basic_Kind_F32] }; +AstBasicType basic_type_f64 = { { Ast_Kind_Basic_Type, 0, NULL, "f64" }, &basic_types[Basic_Kind_F64] }; +AstBasicType basic_type_rawptr = { { Ast_Kind_Basic_Type, 0, NULL, "rawptr" }, &basic_types[Basic_Kind_Rawptr] }; AstNumLit builtin_heap_start = { Ast_Kind_NumLit, Ast_Flag_Const, NULL, NULL, (AstType *) &basic_type_rawptr, NULL, 0 }; @@ -151,6 +151,19 @@ static AstType* symres_type(AstType* type) { return type; } + if (type->kind == Ast_Kind_Struct_Type) { + AstStructType* s_node = (AstStructType *) type; + if (s_node->flags & Ast_Flag_Type_Is_Resolved) return type; + + s_node->flags |= Ast_Flag_Type_Is_Resolved; + + bh_arr_each(AstStructMember *, member, s_node->members) { + (*member)->type_node = symres_type((*member)->type_node); + } + + return type; + } + assert(("Bad type node", 0)); return NULL; } @@ -222,6 +235,10 @@ static void symres_expression(AstTyped** expr) { symres_expression(&((AstArrayAccess *)(*expr))->expr); break; + case Ast_Kind_Field_Access: + symres_expression(&((AstFieldAccess *)(*expr))->expr); + break; + default: DEBUG_HERE; break; @@ -367,6 +384,7 @@ void onyx_resolve_symbols(ProgramInfo* program) { case Entity_Type_Overloaded_Function: symres_overloaded_function(entity->overloaded_function); break; case Entity_Type_Global: symres_global(entity->global); break; case Entity_Type_Expression: symres_expression(&entity->expr); break; + case Entity_Type_Struct: symres_type((AstType *) entity->struct_type); break; default: break; } diff --git a/src/onyxtypes.c b/src/onyxtypes.c index f8e9cd30..f23b8802 100644 --- a/src/onyxtypes.c +++ b/src/onyxtypes.c @@ -23,6 +23,56 @@ Type basic_types[] = { { Type_Kind_Basic, 0, { Basic_Kind_Rawptr, Basic_Flag_Pointer, 4, "rawptr" } }, }; +b32 types_are_surface_compatible(Type* t1, Type* t2) { + // NOTE: If they are pointing to the same thing, + // it is safe to assume they are the same type + if (t1 == t2) return 1; + if (t1 == NULL || t2 == NULL) return 0; + + switch (t1->kind) { + case Type_Kind_Basic: + if (t2->kind == Type_Kind_Basic) { + // HACK: Not sure if this is right way to check this? + if (t1 == t2) return 1; + + if ((t1->Basic.flags & Basic_Flag_Integer) && (t2->Basic.flags & Basic_Flag_Integer)) { + return t1->Basic.size == t2->Basic.size; + } + } + break; + + case Type_Kind_Pointer: + if (t2->kind == Type_Kind_Pointer) return 1; + break; + + case Type_Kind_Struct: { + if (t2->kind != Type_Kind_Struct) return 0; + if (t1->Struct.mem_count != t2->Struct.mem_count) return 0; + if (strcmp(t1->Struct.name, t2->Struct.name) == 0) return 1; + + b32 works = 1; + bh_table_each_start(StructMember, t1->Struct.members); + if (!bh_table_has(StructMember, t2->Struct.members, (char *) key)) return 0; + StructMember other = bh_table_get(StructMember, t2->Struct.members, (char *) key); + if (other.offset != value.offset) return 0; + + if (!types_are_compatible(value.type, other.type)) { + works = 0; + break; + } + bh_table_each_end; + + return works; + } + + default: + assert(("Invalid type", 0)); + break; + } + + return 0; +} + b32 types_are_compatible(Type* t1, Type* t2) { // NOTE: If they are pointing to the same thing, // it is safe to assume they are the same type @@ -47,6 +97,26 @@ b32 types_are_compatible(Type* t1, Type* t2) { } break; + case Type_Kind_Struct: { + if (t2->kind != Type_Kind_Struct) return 0; + if (t1->Struct.mem_count != t2->Struct.mem_count) return 0; + if (strcmp(t1->Struct.name, t2->Struct.name) == 0) return 1; + + b32 works = 1; + bh_table_each_start(StructMember, t1->Struct.members); + if (!bh_table_has(StructMember, t2->Struct.members, (char *) key)) return 0; + StructMember other = bh_table_get(StructMember, t2->Struct.members, (char *) key); + if (other.offset != value.offset) return 0; + + if (!types_are_surface_compatible(value.type, other.type)) { + works = 0; + break; + } + bh_table_each_end; + + return works; + } + default: assert(("Invalid type", 0)); break; @@ -55,6 +125,18 @@ b32 types_are_compatible(Type* t1, Type* t2) { return 0; } +u32 type_size_of(Type* type) { + if (type == NULL) return 0; + + switch (type->kind) { + case Type_Kind_Basic: return type->Basic.size; + case Type_Kind_Pointer: return 4; + case Type_Kind_Function: return 0; + case Type_Kind_Struct: return type->Struct.size; + default: return 0; + } +} + Type* type_build_from_ast(bh_allocator alloc, AstType* type_node) { if (type_node == NULL) return NULL; @@ -81,9 +163,50 @@ Type* type_build_from_ast(bh_allocator alloc, AstType* type_node) { return func_type; } + case Ast_Kind_Struct_Type: { + AstStructType* s_node = (AstStructType *) type_node; + if (s_node->stcache != NULL) return s_node->stcache; + + Type* s_type = bh_alloc(alloc, sizeof(Type)); + s_node->stcache = s_type; + s_type->kind = Type_Kind_Struct; + + s_type->Struct.name = s_node->name; + s_type->Struct.mem_count = bh_arr_length(s_node->members); + bh_table_init(global_heap_allocator, s_type->Struct.members, s_type->Struct.mem_count); + + u32 offset = 0; + u32 min_alignment = 1; + bh_arr_each(AstStructMember *, member, s_node->members) { + (*member)->type = type_build_from_ast(alloc, (*member)->type_node); + + // TODO: Add alignment checking here + + StructMember smem = { + .offset = offset, + .type = (*member)->type + }; + + token_toggle_end((*member)->token); + bh_table_put(StructMember, s_type->Struct.members, (*member)->token->text, smem); + token_toggle_end((*member)->token); + + offset += type_size_of((*member)->type); + } + + // TODO: Again, add alignment + s_type->Struct.size = offset; + + return s_type; + } + case Ast_Kind_Basic_Type: return ((AstBasicType *) type_node)->type; + case Ast_Kind_Symbol: + assert(("symbol node in type expression", 0)); + return NULL; + default: assert(("Node is not a type node", 0)); return NULL; @@ -107,14 +230,50 @@ const char* type_get_name(Type* type) { switch (type->kind) { case Type_Kind_Basic: return type->Basic.name; case Type_Kind_Pointer: return bh_aprintf(global_scratch_allocator, "^%s", type_get_name(type->Pointer.elem)); + case Type_Kind_Struct: return type->Struct.name; default: return "unknown"; } } +u32 type_get_alignment_log2(Type* type) { + i32 store_size = type_size_of(type); + i32 is_integer = (type->Basic.flags & Basic_Flag_Integer) + || (type->Basic.flags & Basic_Flag_Pointer); + + if (is_integer) { + if (store_size == 1) return 0; + else if (store_size == 2) return 1; + else if (store_size == 4) return 2; + else if (store_size == 8) return 3; + } else { + if (store_size == 4) return 2; + else if (store_size == 8) return 3; + } + + return 2; +} + +StructMember type_struct_lookup_member(Type* type, char* member) { + if (!type_is_struct(type)) return (StructMember) { 0 }; + if (type->kind == Type_Kind_Pointer) type = type->Pointer.elem; + + TypeStruct* stype = &type->Struct; + + if (!bh_table_has(StructMember, stype->members, member)) return (StructMember) { 0 }; + StructMember smem = bh_table_get(StructMember, stype->members, member); + return smem; +} + b32 type_is_pointer(Type* type) { return type->kind == Type_Kind_Pointer || (type->Basic.flags & Basic_Flag_Pointer) != 0; } +b32 type_is_struct(Type* type) { + if (type->kind == Type_Kind_Struct) return 1; + if (type->kind == Type_Kind_Pointer && type->Pointer.elem->kind == Type_Kind_Struct) return 1; + return 0; +} + b32 type_is_bool(Type* type) { return type != NULL && type->kind == Type_Kind_Basic && type->Basic.kind == Basic_Kind_Bool; } diff --git a/src/onyxutils.c b/src/onyxutils.c index 541accf5..edc56e13 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -26,11 +26,14 @@ static const char* ast_node_names[] = { "UN_OP", "BIN_OP", - "TYPE_START (BAD)" + "TYPE_START (BAD)", "TYPE", "POINTER_TYPE", "FUNCTION_TYPE", - "TYPE_END (BAD)" + "STRUCT TYPE", + "TYPE_END (BAD)", + + "STRUCT MEMBER", "NUMERIC LITERAL", "STRING LITERAL", @@ -41,6 +44,7 @@ static const char* ast_node_names[] = { "ADDRESS OF", "DEREFERENCE", "ARRAY_ACCESS", + "FIELD_ACCESS", "IF", "FOR", diff --git a/src/onyxwasm.c b/src/onyxwasm.c index b5a361d2..cc3e89e5 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -227,20 +227,24 @@ static WasmType onyx_type_to_wasm_type(Type* type) { #define WID(instr, data) bh_arr_push(code, ((WasmInstruction){ instr, data })) #define COMPILE_FUNC(kind, ...) static void compile_ ## kind (OnyxWasmModule* mod, bh_arr(WasmInstruction)* pcode, __VA_ARGS__) -COMPILE_FUNC(function_body, AstFunction* fd); -COMPILE_FUNC(block, AstBlock* block); -COMPILE_FUNC(statement, AstNode* stmt); -COMPILE_FUNC(assignment, AstBinaryOp* assign); -COMPILE_FUNC(if, AstIf* if_node); -COMPILE_FUNC(while, AstWhile* while_node); -COMPILE_FUNC(for, AstFor* for_node); -COMPILE_FUNC(binop, AstBinaryOp* binop); -COMPILE_FUNC(unaryop, AstUnaryOp* unop); -COMPILE_FUNC(call, AstCall* call); -COMPILE_FUNC(intrinsic_call, AstIntrinsicCall* call); -COMPILE_FUNC(expression, AstTyped* expr); -COMPILE_FUNC(cast, AstUnaryOp* cast); -COMPILE_FUNC(return, AstReturn* ret); +COMPILE_FUNC(function_body, AstFunction* fd); +COMPILE_FUNC(block, AstBlock* block); +COMPILE_FUNC(statement, AstNode* stmt); +COMPILE_FUNC(assignment, AstBinaryOp* assign); +COMPILE_FUNC(store_instruction, Type* type, u32 alignment, u32 offset); +COMPILE_FUNC(load_instruction, Type* type, u32 offset); +COMPILE_FUNC(if, AstIf* if_node); +COMPILE_FUNC(while, AstWhile* while_node); +COMPILE_FUNC(for, AstFor* for_node); +COMPILE_FUNC(binop, AstBinaryOp* binop); +COMPILE_FUNC(unaryop, AstUnaryOp* unop); +COMPILE_FUNC(call, AstCall* call); +COMPILE_FUNC(intrinsic_call, AstIntrinsicCall* call); +COMPILE_FUNC(array_access_location, AstArrayAccess* aa); +COMPILE_FUNC(field_access_location, AstFieldAccess* field, u64* offset_return); +COMPILE_FUNC(expression, AstTyped* expr); +COMPILE_FUNC(cast, AstUnaryOp* cast); +COMPILE_FUNC(return, AstReturn* ret); COMPILE_FUNC(function_body, AstFunction* fd) { if (fd->body == NULL) return; @@ -337,46 +341,32 @@ COMPILE_FUNC(assignment, AstBinaryOp* assign) { compile_expression(mod, &code, deref->expr); compile_expression(mod, &code, assign->right); - i32 store_size = deref->type->Basic.size; - i32 is_integer = (deref->type->Basic.flags & Basic_Flag_Integer) - || (deref->type->Basic.flags & Basic_Flag_Pointer); - - if (is_integer) { - if (store_size == 1) WID(WI_I32_STORE_8, ((WasmInstructionData) { 0, 0 })); - else if (store_size == 2) WID(WI_I32_STORE_16, ((WasmInstructionData) { 1, 0 })); - else if (store_size == 4) WID(WI_I32_STORE, ((WasmInstructionData) { 2, 0 })); - else if (store_size == 8) WID(WI_I64_STORE, ((WasmInstructionData) { 3, 0 })); - } else { - if (store_size == 4) WID(WI_F32_STORE, ((WasmInstructionData) { 2, 0 })); - else if (store_size == 8) WID(WI_F64_STORE, ((WasmInstructionData) { 3, 0 })); - } + compile_store_instruction(mod, &code, + deref->type, + type_get_alignment_log2(deref->type), + 0); } else if (lval->kind == Ast_Kind_Array_Access) { AstArrayAccess* aa = (AstArrayAccess *) lval; - compile_expression(mod, &code, aa->expr); - if (aa->elem_size != 1) { - WID(WI_I32_CONST, aa->elem_size); - WI(WI_I32_MUL); - } - compile_expression(mod, &code, aa->addr); - WI(WI_I32_ADD); - + compile_array_access_location(mod, &code, aa); compile_expression(mod, &code, assign->right); - i32 store_size = aa->type->Basic.size; - i32 is_integer = (aa->type->Basic.flags & Basic_Flag_Integer) - || (aa->type->Basic.flags & Basic_Flag_Pointer); + compile_store_instruction(mod, &code, + aa->type, + type_get_alignment_log2(aa->type), + 0); - if (is_integer) { - if (store_size == 1) WID(WI_I32_STORE_8, ((WasmInstructionData) { 0, 0 })); - else if (store_size == 2) WID(WI_I32_STORE_16, ((WasmInstructionData) { 1, 0 })); - else if (store_size == 4) WID(WI_I32_STORE, ((WasmInstructionData) { 2, 0 })); - else if (store_size == 8) WID(WI_I64_STORE, ((WasmInstructionData) { 3, 0 })); - } else { - if (store_size == 4) WID(WI_F32_STORE, ((WasmInstructionData) { 2, 0 })); - else if (store_size == 8) WID(WI_F64_STORE, ((WasmInstructionData) { 3, 0 })); - } + } else if (lval->kind == Ast_Kind_Field_Access) { + AstFieldAccess* field = (AstFieldAccess *) lval; + u64 offset = 0; + compile_field_access_location(mod, &code, field, &offset); + compile_expression(mod, &code, assign->right); + + compile_store_instruction(mod, &code, + field->type, + type_get_alignment_log2(field->type), + offset); } else { assert(("Invalid lval", 0)); } @@ -384,6 +374,60 @@ COMPILE_FUNC(assignment, AstBinaryOp* assign) { *pcode = code; } +COMPILE_FUNC(store_instruction, Type* type, u32 alignment, u32 offset) { + bh_arr(WasmInstruction) code = *pcode; + + i32 store_size = type_size_of(type); + i32 is_integer = (type->Basic.flags & Basic_Flag_Integer) + || (type->Basic.flags & Basic_Flag_Pointer); + + if (is_integer) { + if (store_size == 1) WID(WI_I32_STORE_8, ((WasmInstructionData) { alignment, offset })); + else if (store_size == 2) WID(WI_I32_STORE_16, ((WasmInstructionData) { alignment, offset })); + else if (store_size == 4) WID(WI_I32_STORE, ((WasmInstructionData) { alignment, offset })); + else if (store_size == 8) WID(WI_I64_STORE, ((WasmInstructionData) { alignment, offset })); + } else { + if (store_size == 4) WID(WI_F32_STORE, ((WasmInstructionData) { alignment, offset })); + else if (store_size == 8) WID(WI_F64_STORE, ((WasmInstructionData) { alignment, offset })); + } + + *pcode = code; +} + +COMPILE_FUNC(load_instruction, Type* type, u32 offset) { + bh_arr(WasmInstruction) code = *pcode; + + i32 load_size = type_size_of(type); + i32 is_integer = (type->Basic.flags & Basic_Flag_Integer) + || (type->Basic.flags & Basic_Flag_Pointer); + i32 is_unsigned = type->Basic.flags & Basic_Flag_Unsigned; + + WasmInstructionType instr = WI_NOP; + i32 alignment = type_get_alignment_log2(type); + + if (is_integer) { + if (load_size == 1) instr = WI_I32_LOAD_8_S; + else if (load_size == 2) instr = WI_I32_LOAD_16_S; + else if (load_size == 4) instr = WI_I32_LOAD; + else if (load_size == 8) instr = WI_I64_LOAD; + + if (load_size < 4 && is_unsigned) instr += 1; + } else { + if (load_size == 4) instr = WI_F32_LOAD; + else if (load_size == 8) instr = WI_F64_LOAD; + } + + WID(instr, ((WasmInstructionData) { alignment, offset })); + + if (instr == WI_NOP) { + onyx_message_add(Msg_Type_Literal, + (OnyxFilePos) { 0 }, + "failed to generate load instruction"); + } + + *pcode = code; +} + COMPILE_FUNC(if, AstIf* if_node) { bh_arr(WasmInstruction) code = *pcode; @@ -703,6 +747,42 @@ COMPILE_FUNC(intrinsic_call, AstIntrinsicCall* call) { *pcode = code; } +COMPILE_FUNC(array_access_location, AstArrayAccess* aa) { + bh_arr(WasmInstruction) code = *pcode; + + compile_expression(mod, &code, aa->expr); + if (aa->elem_size != 1) { + WID(WI_I32_CONST, aa->elem_size); + WI(WI_I32_MUL); + } + compile_expression(mod, &code, aa->addr); + WI(WI_I32_ADD); + + *pcode = code; +} + +COMPILE_FUNC(field_access_location, AstFieldAccess* field, u64* offset_return) { + bh_arr(WasmInstruction) code = *pcode; + + u64 offset = field->offset; + AstTyped* source_expr = field->expr; + while (source_expr->kind == Ast_Kind_Field_Access + && (source_expr->type->kind == Type_Kind_Struct)) { + offset += ((AstFieldAccess *) source_expr)->offset; + source_expr = (AstTyped *) ((AstFieldAccess *) source_expr)->expr; + } + + if (source_expr->kind == Ast_Kind_Array_Access) { + compile_array_access_location(mod, &code, (AstArrayAccess *) source_expr); + } else { + compile_expression(mod, &code, source_expr); + } + + *offset_return = offset; + + *pcode = code; +} + COMPILE_FUNC(expression, AstTyped* expr) { bh_arr(WasmInstruction) code = *pcode; @@ -767,13 +847,15 @@ COMPILE_FUNC(expression, AstTyped* expr) { case Ast_Kind_Array_Access: { AstArrayAccess* aa = (AstArrayAccess *) aof->expr; + compile_array_access_location(mod, &code, aa); + break; + } - compile_expression(mod, &code, aa->expr); - if (aa->elem_size != 1) { - WID(WI_I32_CONST, aa->elem_size); - WI(WI_I32_MUL); - } - compile_expression(mod, &code, aa->addr); + case Ast_Kind_Field_Access: { + AstFieldAccess* field = (AstFieldAccess *) aof->expr; + u64 offset = 0; + compile_field_access_location(mod, &code, field, &offset); + WID(WI_I32_CONST, offset); WI(WI_I32_ADD); break; } @@ -790,72 +872,23 @@ COMPILE_FUNC(expression, AstTyped* expr) { case Ast_Kind_Dereference: { AstDereference* deref = (AstDereference *) expr; compile_expression(mod, &code, deref->expr); - - i32 load_size = deref->type->Basic.size; - i32 is_integer = (deref->type->Basic.flags & Basic_Flag_Integer) - || (deref->type->Basic.flags & Basic_Flag_Pointer); - i32 is_unsigned = deref->type->Basic.flags & Basic_Flag_Unsigned; - - WasmInstructionType instr = WI_NOP; - i32 alignment = log2_dumb(load_size); - - if (is_integer) { - if (load_size == 1) instr = WI_I32_LOAD_8_S; - else if (load_size == 2) instr = WI_I32_LOAD_16_S; - else if (load_size == 4) instr = WI_I32_LOAD; - else if (load_size == 8) instr = WI_I64_LOAD; - - if (load_size < 4 && is_unsigned) instr += 1; - } else { - if (load_size == 4) instr = WI_F32_LOAD; - else if (load_size == 8) instr = WI_F64_LOAD; - } - - if (instr != WI_NOP) { - WID(instr, ((WasmInstructionData) { alignment, 0 })); - } else { - DEBUG_HERE; - } - + compile_load_instruction(mod, &code, deref->type, 0); break; } case Ast_Kind_Array_Access: { AstArrayAccess* aa = (AstArrayAccess *) expr; - compile_expression(mod, &code, aa->expr); - if (aa->elem_size != 1) { - WID(WI_I32_CONST, aa->elem_size); - WI(WI_I32_MUL); - } - compile_expression(mod, &code, aa->addr); - WI(WI_I32_ADD); - - i32 load_size = aa->type->Basic.size; - i32 is_integer = (aa->type->Basic.flags & Basic_Flag_Integer) - || (aa->type->Basic.flags & Basic_Flag_Pointer); - i32 is_unsigned = aa->type->Basic.flags & Basic_Flag_Unsigned; - - WasmInstructionType instr = WI_NOP; - i32 alignment = log2_dumb(load_size); - - if (is_integer) { - if (load_size == 1) instr = WI_I32_LOAD_8_S; - else if (load_size == 2) instr = WI_I32_LOAD_16_S; - else if (load_size == 4) instr = WI_I32_LOAD; - else if (load_size == 8) instr = WI_I64_LOAD; - - if (load_size < 4 && is_unsigned) instr += 1; - } else { - if (load_size == 4) instr = WI_F32_LOAD; - else if (load_size == 8) instr = WI_F64_LOAD; - } + compile_array_access_location(mod, &code, aa); + compile_load_instruction(mod, &code, aa->type, 0); + break; + } - if (instr != WI_NOP) { - WID(instr, ((WasmInstructionData) { alignment, 0 })); - } else { - DEBUG_HERE; - } + case Ast_Kind_Field_Access: { + AstFieldAccess* field = (AstFieldAccess* ) expr; + u64 offset = 0; + compile_field_access_location(mod, &code, field, &offset); + compile_load_instruction(mod, &code, field->type, offset); break; } @@ -1225,10 +1258,9 @@ void onyx_wasm_module_compile(OnyxWasmModule* module, ProgramInfo* program) { module->next_func_idx = program->foreign_func_count; module->next_global_idx = program->foreign_global_count; - // NOTE: First, assign indicies to all functions / globals bh_arr_each(Entity, entity, program->entities) { switch (entity->type) { - case Entity_Type_Function: { + case Entity_Type_Function_Header: { if (entity->function->flags & Ast_Flag_Intrinsic) break; u64 func_idx; @@ -1241,7 +1273,7 @@ void onyx_wasm_module_compile(OnyxWasmModule* module, ProgramInfo* program) { break; } - case Entity_Type_Global: { + case Entity_Type_Global_Header: { u64 global_idx; if ((entity->global->flags & Ast_Flag_Foreign) != 0) global_idx = module->next_foreign_global_idx++; @@ -1254,23 +1286,19 @@ void onyx_wasm_module_compile(OnyxWasmModule* module, ProgramInfo* program) { case Entity_Type_String_Literal: { compile_string_literal(module, (AstStrLit *) entity->strlit); - } - default: break; - } - } - - // NOTE: Round up to the nearest multiple of 16 - builtin_heap_start.value.i = - (module->next_datum_offset & 15) - ? ((module->next_datum_offset >> 4) + 1) << 4 - : module->next_datum_offset; + // HACK: To put this here + // NOTE: Round up to the nearest multiple of 16 + builtin_heap_start.value.i = + (module->next_datum_offset & 15) + ? ((module->next_datum_offset >> 4) + 1) << 4 + : module->next_datum_offset; + break; + } - // NOTE: Then, compile everything - bh_arr_each(Entity, entity, program->entities) { - switch (entity->type) { case Entity_Type_Function: compile_function(module, entity->function); break; case Entity_Type_Global: compile_global(module, entity->global); break; + default: break; } } -- 2.25.1