Stack allocate arrays
This commit is contained in:
@@ -371,17 +371,9 @@ public class Generator
|
||||
|
||||
private void GenerateArrayInitializer(ArrayInitializerNode arrayInitializer, LocalFunc func)
|
||||
{
|
||||
_builder.AppendLine($"""
|
||||
mov rax, 9
|
||||
mov rdi, 0
|
||||
mov rsi, {8 + arrayInitializer.Length * 8}
|
||||
mov rdx, 3
|
||||
mov r10, 34
|
||||
mov r8, -1
|
||||
mov r9, 0
|
||||
syscall
|
||||
mov QWORD [rax], {arrayInitializer.Length}
|
||||
""");
|
||||
_builder.AppendLine($" sub rsp, {8 + arrayInitializer.Length * 8}");
|
||||
_builder.AppendLine(" mov rax, rsp");
|
||||
_builder.AppendLine($" mov QWORD [rsp], {arrayInitializer.Length}");
|
||||
}
|
||||
|
||||
private void GenerateBinaryExpression(BinaryExpressionNode binaryExpression, LocalFunc func)
|
||||
|
||||
@@ -5,8 +5,8 @@ func main() {
|
||||
println(some_string);
|
||||
|
||||
let some_array = new Array<int64>(2);
|
||||
some_array[1] = 1;
|
||||
some_array[2] = 2;
|
||||
some_array[1] = 123;
|
||||
some_array[2] = 124;
|
||||
|
||||
let i = 1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user