...
This commit is contained in:
@@ -193,26 +193,14 @@ public static class QBEGenerator
|
||||
{
|
||||
case NubPrimitiveType primitiveType:
|
||||
{
|
||||
switch (primitiveType.Kind)
|
||||
return primitiveType.Kind switch
|
||||
{
|
||||
case PrimitiveTypeKind.I64:
|
||||
case PrimitiveTypeKind.U64:
|
||||
case PrimitiveTypeKind.F64:
|
||||
return 8;
|
||||
case PrimitiveTypeKind.I32:
|
||||
case PrimitiveTypeKind.U32:
|
||||
case PrimitiveTypeKind.F32:
|
||||
return 4;
|
||||
case PrimitiveTypeKind.I16:
|
||||
case PrimitiveTypeKind.U16:
|
||||
return 2;
|
||||
case PrimitiveTypeKind.I8:
|
||||
case PrimitiveTypeKind.U8:
|
||||
case PrimitiveTypeKind.Bool:
|
||||
return 1;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
PrimitiveTypeKind.I64 or PrimitiveTypeKind.U64 or PrimitiveTypeKind.F64 => 8,
|
||||
PrimitiveTypeKind.I32 or PrimitiveTypeKind.U32 or PrimitiveTypeKind.F32 or PrimitiveTypeKind.Bool => 4,
|
||||
PrimitiveTypeKind.I16 or PrimitiveTypeKind.U16 => 2,
|
||||
PrimitiveTypeKind.I8 or PrimitiveTypeKind.U8 => 1,
|
||||
_ => throw new ArgumentOutOfRangeException()
|
||||
};
|
||||
}
|
||||
case NubStructType nubStructType:
|
||||
{
|
||||
@@ -247,28 +235,16 @@ public static class QBEGenerator
|
||||
{
|
||||
case NubPrimitiveType primitiveType:
|
||||
{
|
||||
switch (primitiveType.Kind)
|
||||
return primitiveType.Kind switch
|
||||
{
|
||||
case PrimitiveTypeKind.I64:
|
||||
case PrimitiveTypeKind.U64:
|
||||
return 8;
|
||||
case PrimitiveTypeKind.I32:
|
||||
case PrimitiveTypeKind.U32:
|
||||
return 4;
|
||||
case PrimitiveTypeKind.I16:
|
||||
case PrimitiveTypeKind.U16:
|
||||
return 2;
|
||||
case PrimitiveTypeKind.I8:
|
||||
case PrimitiveTypeKind.U8:
|
||||
case PrimitiveTypeKind.Bool:
|
||||
return 1;
|
||||
case PrimitiveTypeKind.F64:
|
||||
return 8;
|
||||
case PrimitiveTypeKind.F32:
|
||||
return 4;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
PrimitiveTypeKind.I64 or PrimitiveTypeKind.U64 => 8,
|
||||
PrimitiveTypeKind.I32 or PrimitiveTypeKind.U32 or PrimitiveTypeKind.Bool => 4,
|
||||
PrimitiveTypeKind.I16 or PrimitiveTypeKind.U16 => 2,
|
||||
PrimitiveTypeKind.I8 or PrimitiveTypeKind.U8 => 1,
|
||||
PrimitiveTypeKind.F64 => 8,
|
||||
PrimitiveTypeKind.F32 => 4,
|
||||
_ => throw new ArgumentOutOfRangeException()
|
||||
};
|
||||
}
|
||||
case NubStructType nubStructType:
|
||||
{
|
||||
@@ -298,8 +274,7 @@ public static class QBEGenerator
|
||||
}
|
||||
case NubFixedArrayType nubFixedArrayType:
|
||||
{
|
||||
int elementSize = SizeOf(nubFixedArrayType.ElementType);
|
||||
return elementSize * nubFixedArrayType.Capacity + 8;
|
||||
return SizeOf(nubFixedArrayType.ElementType) * nubFixedArrayType.Capacity + 8;
|
||||
}
|
||||
default:
|
||||
{
|
||||
@@ -493,6 +468,7 @@ public static class QBEGenerator
|
||||
};
|
||||
_builder.Append(qbeType + ", ");
|
||||
}
|
||||
|
||||
_builder.AppendLine("}");
|
||||
}
|
||||
|
||||
@@ -875,6 +851,7 @@ public static class QBEGenerator
|
||||
{
|
||||
throw new NotSupportedException("There is nothing to address in another namespace");
|
||||
}
|
||||
|
||||
return _variables.Single(x => x.Name == identifier.Name).Pointer;
|
||||
case MemberAccessNode memberAccess:
|
||||
return GenerateMemberAccessPointer(memberAccess);
|
||||
|
||||
Reference in New Issue
Block a user