From 69ca860f4b537a82119dcf8d2585ece5a11f8a07 Mon Sep 17 00:00:00 2001 From: nub31 Date: Mon, 2 Jun 2025 16:22:50 +0200 Subject: [PATCH] Structs support sub-structs --- src/lang/Nub.Lang/Frontend/Generation/Generator.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lang/Nub.Lang/Frontend/Generation/Generator.cs b/src/lang/Nub.Lang/Frontend/Generation/Generator.cs index f5c89f0..09e439a 100644 --- a/src/lang/Nub.Lang/Frontend/Generation/Generator.cs +++ b/src/lang/Nub.Lang/Frontend/Generation/Generator.cs @@ -1379,7 +1379,7 @@ public class Generator if (IsLargeType(field.Type)) { - _builder.AppendLine($" blit %{offsetName}, {var}, {QbeTypeSize(field.Type)}"); + _builder.AppendLine($" blit {var}, %{offsetName}, {QbeTypeSize(field.Type)}"); } else { @@ -1391,7 +1391,15 @@ public class Generator var var = GenerateExpression(field.Value.Value); var offsetName = GenVarName(); _builder.AppendLine($" %{offsetName} =l add %{structVar}, {offset}"); - _builder.AppendLine($" store{SQT(field.Type)} {var}, %{offsetName}"); + + if (IsLargeType(field.Type)) + { + _builder.AppendLine($" blit {var}, %{offsetName}, {QbeTypeSize(field.Type)}"); + } + else + { + _builder.AppendLine($" store{SQT(field.Type)} {var}, %{offsetName}"); + } } else {