@@ -73,18 +73,18 @@ class BackendARM64 : CompilerBackend {
7373
7474 // built in structs
7575 types ~= Type(" Array" , 24 , true , [
76- StructEntry(UsedType(GetType(" usize" ), false ), " length" ),
77- StructEntry(UsedType(GetType(" usize" ), false ), " memberSize" ),
78- StructEntry(UsedType(GetType(" addr" ), false ), " elements" )
76+ StructEntry(UsedType(GetType(" usize" ), false ), " length" , false , 8 , 0 ),
77+ StructEntry(UsedType(GetType(" usize" ), false ), " memberSize" , false , 8 , 8 ),
78+ StructEntry(UsedType(GetType(" addr" ), false ), " elements" , false , 8 , 16 )
7979 ]);
8080 NewConst(" Array.length" , 0 );
8181 NewConst(" Array.memberSize" , 8 );
8282 NewConst(" Array.elements" , 16 );
8383 NewConst(" Array.sizeOf" , 8 * 3 );
8484
8585 types ~= Type(" Exception" , 24 + 8 , true , [
86- StructEntry(UsedType(GetType(" bool" ), false ), " error" ),
87- StructEntry(UsedType(GetType(" Array" ), false ), " msg" )
86+ StructEntry(UsedType(GetType(" bool" ), false ), " error" , false , 8 , 0 ),
87+ StructEntry(UsedType(GetType(" Array" ), false ), " msg" , false , 8 * 3 , 8 )
8888 ]);
8989 NewConst(" Exception.bool" , 0 );
9090 NewConst(" Exception.msg" , 8 );
@@ -398,10 +398,6 @@ class BackendARM64 : CompilerBackend {
398398 size = var.type.Size();
399399 }
400400
401- if (var.type.isStruct && ! member) {
402- Error(node.error, " Can't push value of struct" );
403- }
404-
405401 string base;
406402 if (deref) {
407403 output ~= format(" ldr x9, [x20, #%d]\n " , var.offset);
0 commit comments