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 {