Structs support sub-structs

This commit is contained in:
nub31
2025-06-02 16:22:50 +02:00
parent c3714af5f3
commit 4ba455b220

View File

@@ -1379,7 +1379,7 @@ public class Generator
if (IsLargeType(field.Type)) if (IsLargeType(field.Type))
{ {
_builder.AppendLine($" blit %{offsetName}, {var}, {QbeTypeSize(field.Type)}"); _builder.AppendLine($" blit {var}, %{offsetName}, {QbeTypeSize(field.Type)}");
} }
else else
{ {
@@ -1391,8 +1391,16 @@ public class Generator
var var = GenerateExpression(field.Value.Value); var var = GenerateExpression(field.Value.Value);
var offsetName = GenVarName(); var offsetName = GenVarName();
_builder.AppendLine($" %{offsetName} =l add %{structVar}, {offset}"); _builder.AppendLine($" %{offsetName} =l add %{structVar}, {offset}");
if (IsLargeType(field.Type))
{
_builder.AppendLine($" blit {var}, %{offsetName}, {QbeTypeSize(field.Type)}");
}
else
{
_builder.AppendLine($" store{SQT(field.Type)} {var}, %{offsetName}"); _builder.AppendLine($" store{SQT(field.Type)} {var}, %{offsetName}");
} }
}
else else
{ {
Debug.Assert(false); Debug.Assert(false);