From 9d5846b86eed777933b6c7a2a15e41f2b779c650 Mon Sep 17 00:00:00 2001 From: Daco Harkes Date: Thu, 8 Apr 2021 17:41:30 +0000 Subject: [PATCH] [vm/ffi] Support `Union`s backend This Splits the NativeCompoundType into NativeStructType and NativeUnionType. The calling conventions themselves did not have to be updated at all, they rely on the 'queries' on NativeTypes. Some interesting corner cases in the native calling conventions are: 1. Arm64 and arm hardfp still regard unions as homogeneous floats, even if the union members are different sizes. 2. Unions can be larger than their members if their largest member has a smaller alignment than a smaller member. 3. When a specific range in a struct contains floating points in one member, but integers in another, the integers take precedence. Bug: https://github.com/dart-lang/sdk/issues/38491 tools/build.py run_ffi_unit_tests && tools/test.py ffi_unit TEST=runtime/vm/compiler/ffi/native_calling_convention_test.cc TEST=runtime/vm/compiler/ffi/native_type_test.cc These tests are exercised on vm-precomp-ffi-qemu-linux-release-arm-try. Change-Id: Ib97769457d1ad0fce47601e9e4a3008bd837167f Cq-Include-Trybots: luci.dart.try:vm-precomp-ffi-qemu-linux-release-arm-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194422 Commit-Queue: Daco Harkes Reviewed-by: Aske Simon Christensen --- .../ffi/native_calling_convention_test.cc | 128 +++++++++++++++--- runtime/vm/compiler/ffi/native_type.cc | 108 +++++++++++++-- runtime/vm/compiler/ffi/native_type.h | 88 +++++++++--- runtime/vm/compiler/ffi/native_type_test.cc | 84 +++++++++++- .../struct128bytesx1/arm64_android.expect | 4 +- .../struct128bytesx1/arm64_ios.expect | 4 +- .../struct128bytesx1/arm64_linux.expect | 4 +- .../struct128bytesx1/arm64_macos.expect | 4 +- .../struct128bytesx1/arm_android.expect | 4 +- .../struct128bytesx1/arm_ios.expect | 4 +- .../struct128bytesx1/arm_linux.expect | 4 +- .../struct128bytesx1/ia32_android.expect | 4 +- .../struct128bytesx1/ia32_linux.expect | 4 +- .../struct128bytesx1/ia32_win.expect | 4 +- .../struct128bytesx1/x64_ios.expect | 4 +- .../struct128bytesx1/x64_linux.expect | 4 +- .../struct128bytesx1/x64_macos.expect | 4 +- .../struct128bytesx1/x64_win.expect | 4 +- .../arm64_android.expect | 22 +-- .../arm64_ios.expect | 22 +-- .../arm64_linux.expect | 22 +-- .../arm64_macos.expect | 22 +-- .../arm_android.expect | 22 +-- .../struct16bytesHomogenousx10/arm_ios.expect | 22 +-- .../arm_linux.expect | 22 +-- .../ia32_android.expect | 22 +-- .../ia32_linux.expect | 22 +-- .../ia32_win.expect | 22 +-- .../struct16bytesHomogenousx10/x64_ios.expect | 22 +-- .../x64_linux.expect | 22 +-- .../x64_macos.expect | 22 +-- .../struct16bytesHomogenousx10/x64_win.expect | 22 +-- .../struct16bytesMixedx10/x64_ios.expect | 22 +-- .../struct16bytesMixedx10/x64_linux.expect | 22 +-- .../struct16bytesMixedx10/x64_macos.expect | 22 +-- .../struct16bytesMixedx10/x64_win.expect | 22 +-- .../struct16bytesMixedx10_2/x64_ios.expect | 22 +-- .../struct16bytesMixedx10_2/x64_linux.expect | 22 +-- .../struct16bytesMixedx10_2/x64_macos.expect | 22 +-- .../struct16bytesMixedx10_2/x64_win.expect | 22 +-- .../struct16bytesMixedx10_3/x64_ios.expect | 22 +-- .../struct16bytesMixedx10_3/x64_linux.expect | 22 +-- .../struct16bytesMixedx10_3/x64_macos.expect | 22 +-- .../struct16bytesMixedx10_3/x64_win.expect | 22 +-- .../struct3bytesx10/arm64_android.expect | 22 +-- .../struct3bytesx10/arm64_ios.expect | 22 +-- .../struct3bytesx10/arm64_linux.expect | 22 +-- .../struct3bytesx10/arm64_macos.expect | 22 +-- .../struct3bytesx10/arm_android.expect | 22 +-- .../unit_tests/struct3bytesx10/arm_ios.expect | 22 +-- .../struct3bytesx10/arm_linux.expect | 22 +-- .../struct3bytesx10/ia32_android.expect | 22 +-- .../struct3bytesx10/ia32_linux.expect | 22 +-- .../struct3bytesx10/ia32_win.expect | 22 +-- .../unit_tests/struct3bytesx10/x64_ios.expect | 22 +-- .../struct3bytesx10/x64_linux.expect | 22 +-- .../struct3bytesx10/x64_macos.expect | 22 +-- .../unit_tests/struct3bytesx10/x64_win.expect | 22 +-- .../arm64_android.expect | 22 +-- .../struct8bytesPackedx10/arm64_ios.expect | 22 +-- .../struct8bytesPackedx10/arm64_linux.expect | 22 +-- .../struct8bytesPackedx10/arm64_macos.expect | 22 +-- .../struct8bytesPackedx10/arm_android.expect | 22 +-- .../struct8bytesPackedx10/arm_ios.expect | 22 +-- .../struct8bytesPackedx10/arm_linux.expect | 22 +-- .../struct8bytesPackedx10/ia32_android.expect | 22 +-- .../struct8bytesPackedx10/ia32_linux.expect | 22 +-- .../struct8bytesPackedx10/ia32_win.expect | 22 +-- .../struct8bytesPackedx10/x64_ios.expect | 22 +-- .../struct8bytesPackedx10/x64_linux.expect | 22 +-- .../struct8bytesPackedx10/x64_macos.expect | 22 +-- .../struct8bytesPackedx10/x64_win.expect | 22 +-- .../struct8bytesx1/arm64_android.expect | 4 +- .../struct8bytesx1/arm64_ios.expect | 4 +- .../struct8bytesx1/arm64_linux.expect | 4 +- .../struct8bytesx1/arm64_macos.expect | 4 +- .../struct8bytesx1/arm_android.expect | 4 +- .../unit_tests/struct8bytesx1/arm_ios.expect | 4 +- .../struct8bytesx1/arm_linux.expect | 4 +- .../struct8bytesx1/ia32_android.expect | 4 +- .../struct8bytesx1/ia32_linux.expect | 4 +- .../unit_tests/struct8bytesx1/ia32_win.expect | 4 +- .../unit_tests/struct8bytesx1/x64_ios.expect | 4 +- .../struct8bytesx1/x64_linux.expect | 4 +- .../struct8bytesx1/x64_macos.expect | 4 +- .../unit_tests/struct8bytesx1/x64_win.expect | 4 +- .../structPacked/arm64_android.expect | 6 +- .../unit_tests/structPacked/arm64_ios.expect | 6 +- .../structPacked/arm64_linux.expect | 6 +- .../structPacked/arm64_macos.expect | 6 +- .../structPacked/arm_android.expect | 6 +- .../unit_tests/structPacked/arm_ios.expect | 6 +- .../unit_tests/structPacked/arm_linux.expect | 6 +- .../structPacked/ia32_android.expect | 6 +- .../unit_tests/structPacked/ia32_linux.expect | 6 +- .../unit_tests/structPacked/ia32_win.expect | 6 +- .../unit_tests/structPacked/x64_ios.expect | 6 +- .../unit_tests/structPacked/x64_linux.expect | 6 +- .../unit_tests/structPacked/x64_macos.expect | 6 +- .../unit_tests/structPacked/x64_win.expect | 6 +- .../arm64_android.expect | 2 +- .../struct_VeryLargeStruct/arm64_ios.expect | 2 +- .../struct_VeryLargeStruct/arm64_linux.expect | 2 +- .../struct_VeryLargeStruct/arm64_macos.expect | 2 +- .../struct_VeryLargeStruct/arm_android.expect | 2 +- .../struct_VeryLargeStruct/arm_ios.expect | 2 +- .../struct_VeryLargeStruct/arm_linux.expect | 2 +- .../ia32_android.expect | 2 +- .../struct_VeryLargeStruct/ia32_linux.expect | 2 +- .../struct_VeryLargeStruct/ia32_win.expect | 2 +- .../struct_VeryLargeStruct/x64_ios.expect | 2 +- .../struct_VeryLargeStruct/x64_linux.expect | 2 +- .../struct_VeryLargeStruct/x64_macos.expect | 2 +- .../struct_VeryLargeStruct/x64_win.expect | 2 +- .../struct_floatarray/arm64_android.expect | 4 +- .../struct_floatarray/arm64_ios.expect | 4 +- .../struct_floatarray/arm64_linux.expect | 4 +- .../struct_floatarray/arm64_macos.expect | 4 +- .../struct_floatarray/arm_android.expect | 4 +- .../struct_floatarray/arm_ios.expect | 4 +- .../struct_floatarray/arm_linux.expect | 4 +- .../struct_floatarray/ia32_android.expect | 4 +- .../struct_floatarray/ia32_linux.expect | 4 +- .../struct_floatarray/ia32_win.expect | 4 +- .../struct_floatarray/x64_ios.expect | 4 +- .../struct_floatarray/x64_linux.expect | 4 +- .../struct_floatarray/x64_macos.expect | 4 +- .../struct_floatarray/x64_win.expect | 4 +- .../struct_floatx4/arm64_android.expect | 2 +- .../struct_floatx4/arm64_ios.expect | 2 +- .../struct_floatx4/arm64_linux.expect | 2 +- .../struct_floatx4/arm64_macos.expect | 2 +- .../struct_floatx4/arm_android.expect | 2 +- .../unit_tests/struct_floatx4/arm_ios.expect | 2 +- .../struct_floatx4/arm_linux.expect | 2 +- .../struct_floatx4/ia32_android.expect | 2 +- .../struct_floatx4/ia32_linux.expect | 2 +- .../unit_tests/struct_floatx4/ia32_win.expect | 2 +- .../unit_tests/struct_floatx4/x64_ios.expect | 2 +- .../struct_floatx4/x64_linux.expect | 2 +- .../struct_floatx4/x64_macos.expect | 2 +- .../unit_tests/struct_floatx4/x64_win.expect | 2 +- .../struct_int8array/arm64_android.expect | 2 +- .../struct_int8array/arm64_ios.expect | 2 +- .../struct_int8array/arm64_linux.expect | 2 +- .../struct_int8array/arm64_macos.expect | 2 +- .../struct_int8array/arm_android.expect | 2 +- .../struct_int8array/arm_ios.expect | 2 +- .../struct_int8array/arm_linux.expect | 2 +- .../struct_int8array/ia32_android.expect | 2 +- .../struct_int8array/ia32_linux.expect | 2 +- .../struct_int8array/ia32_win.expect | 2 +- .../struct_int8array/x64_ios.expect | 2 +- .../struct_int8array/x64_linux.expect | 2 +- .../struct_int8array/x64_macos.expect | 2 +- .../struct_int8array/x64_win.expect | 2 +- .../struct_int8x10/arm64_android.expect | 2 +- .../struct_int8x10/arm64_ios.expect | 2 +- .../struct_int8x10/arm64_linux.expect | 2 +- .../struct_int8x10/arm64_macos.expect | 2 +- .../struct_int8x10/arm_android.expect | 2 +- .../unit_tests/struct_int8x10/arm_ios.expect | 2 +- .../struct_int8x10/arm_linux.expect | 2 +- .../struct_int8x10/ia32_android.expect | 2 +- .../struct_int8x10/ia32_linux.expect | 2 +- .../unit_tests/struct_int8x10/ia32_win.expect | 2 +- .../unit_tests/struct_int8x10/x64_ios.expect | 2 +- .../struct_int8x10/x64_linux.expect | 2 +- .../struct_int8x10/x64_macos.expect | 2 +- .../unit_tests/struct_int8x10/x64_win.expect | 2 +- .../arm64_android.expect | 13 ++ .../arm64_ios.expect | 13 ++ .../arm64_linux.expect | 13 ++ .../arm64_macos.expect | 13 ++ .../arm_android.expect | 13 ++ .../union16bytesHomogenousx10/arm_ios.expect | 13 ++ .../arm_linux.expect | 13 ++ .../ia32_android.expect | 13 ++ .../ia32_linux.expect | 13 ++ .../union16bytesHomogenousx10/ia32_win.expect | 13 ++ .../union16bytesHomogenousx10/x64_ios.expect | 13 ++ .../x64_linux.expect | 13 ++ .../x64_macos.expect | 13 ++ .../union16bytesHomogenousx10/x64_win.expect | 13 ++ .../union5bytesPackedx10/arm64_android.expect | 12 ++ .../union5bytesPackedx10/arm64_ios.expect | 12 ++ .../union5bytesPackedx10/arm64_linux.expect | 12 ++ .../union5bytesPackedx10/arm64_macos.expect | 12 ++ .../union5bytesPackedx10/arm_android.expect | 12 ++ .../union5bytesPackedx10/arm_ios.expect | 12 ++ .../union5bytesPackedx10/arm_linux.expect | 12 ++ .../union5bytesPackedx10/ia32_android.expect | 12 ++ .../union5bytesPackedx10/ia32_linux.expect | 12 ++ .../union5bytesPackedx10/ia32_win.expect | 12 ++ .../union5bytesPackedx10/x64_ios.expect | 12 ++ .../union5bytesPackedx10/x64_linux.expect | 12 ++ .../union5bytesPackedx10/x64_macos.expect | 12 ++ .../union5bytesPackedx10/x64_win.expect | 12 ++ runtime/vm/symbols.h | 1 + 199 files changed, 1477 insertions(+), 834 deletions(-) create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_android.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_ios.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_linux.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_macos.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_android.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_ios.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_linux.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_android.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_linux.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_win.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_ios.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_linux.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_macos.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_win.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_android.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_ios.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_linux.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_macos.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_android.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_ios.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_linux.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_android.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_linux.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_win.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_ios.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_linux.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_macos.expect create mode 100644 runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_win.expect diff --git a/runtime/vm/compiler/ffi/native_calling_convention_test.cc b/runtime/vm/compiler/ffi/native_calling_convention_test.cc index 0ac5e3f0d9b5..9d4b672524b7 100644 --- a/runtime/vm/compiler/ffi/native_calling_convention_test.cc +++ b/runtime/vm/compiler/ffi/native_calling_convention_test.cc @@ -95,8 +95,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_struct3bytesx10) { member_types.Add(&int8type); member_types.Add(&int8type); member_types.Add(&int8type); - const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, member_types); + const auto& struct_type = NativeStructType::FromNativeTypes(Z, member_types); auto& arguments = *new (Z) NativeTypes(Z, 10); arguments.Add(&struct_type); @@ -138,8 +137,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_struct16bytesHomogenousx10) { member_types.Add(&float_type); member_types.Add(&float_type); member_types.Add(&float_type); - const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, member_types); + const auto& struct_type = NativeStructType::FromNativeTypes(Z, member_types); auto& arguments = *new (Z) NativeTypes(Z, 13); arguments.Add(&struct_type); @@ -174,14 +172,13 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_struct16bytesHomogenousx10_2) { auto& full_float_member_types = *new (Z) NativeTypes(Z, 1); full_float_member_types.Add(&float_2_array_type); const auto& float_array_struct_type = - NativeCompoundType::FromNativeTypes(Z, full_float_member_types); + NativeStructType::FromNativeTypes(Z, full_float_member_types); auto& member_types = *new (Z) NativeTypes(Z, 3); member_types.Add(&float_1_array_type); member_types.Add(&float_array_struct_type); member_types.Add(&float_type); - const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, member_types); + const auto& struct_type = NativeStructType::FromNativeTypes(Z, member_types); auto& arguments = *new (Z) NativeTypes(Z, 13); arguments.Add(&struct_type); @@ -203,6 +200,55 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_struct16bytesHomogenousx10_2) { RunSignatureTest(Z, "struct16bytesHomogenousx10", arguments, struct_type); } +// Test with homogenous union. +// +// Even though the number of floats nested is different, this is still laid +// out as a homogeneous aggregate in arm64 and arm hardfp. +// +// Even though the member sizes are different, these unions are still passed in +// xmm registers on Linux/MacOS x64. +// +// See the *.expect in ./unit_tests for this behavior. +UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_union16bytesHomogenousx10) { + const auto& float_type = *new (Z) NativePrimitiveType(kFloat); + const auto& int8type = *new (Z) NativePrimitiveType(kInt8); + + const auto& float_array_type = *new (Z) NativeArrayType(float_type, 3); + + auto& struct_member_types = *new (Z) NativeTypes(Z, 4); + struct_member_types.Add(&float_type); + struct_member_types.Add(&float_type); + struct_member_types.Add(&float_type); + struct_member_types.Add(&float_type); + const auto& struct_type = + NativeStructType::FromNativeTypes(Z, struct_member_types); + + auto& member_types = *new (Z) NativeTypes(Z, 2); + member_types.Add(&float_array_type); + member_types.Add(&struct_type); + const auto& union_type = NativeUnionType::FromNativeTypes(Z, member_types); + + EXPECT_EQ(16, union_type.SizeInBytes()); + EXPECT(union_type.ContainsHomogenuousFloats()); + + auto& arguments = *new (Z) NativeTypes(Z, 13); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&int8type); // Check integer register back filling, if any. + arguments.Add(&union_type); // Check stack alignment of struct. + + // Identical expectation files as previous test, struct contains the same + // members, but nested in arrays and nested structs. + RunSignatureTest(Z, "union16bytesHomogenousx10", arguments, union_type); +} + // A fairly big struct. // // On arm, split up in 8-byte chunks. The first chunk goes into two registers, @@ -237,8 +283,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_struct128bytesx1) { member_types.Add(&int64_type); member_types.Add(&int64_type); member_types.Add(&int64_type); - const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, member_types); + const auto& struct_type = NativeStructType::FromNativeTypes(Z, member_types); auto& arguments = *new (Z) NativeTypes(Z, 2); arguments.Add(&struct_type); @@ -260,8 +305,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_struct16bytesMixedx10) { member_types.Add(&float_type); member_types.Add(&int32_type); member_types.Add(&int32_type); - const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, member_types); + const auto& struct_type = NativeStructType::FromNativeTypes(Z, member_types); auto& arguments = *new (Z) NativeTypes(Z, 11); arguments.Add(&struct_type); @@ -291,8 +335,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_struct16bytesMixedx10_2) { member_types.Add(&float_type); member_types.Add(&int32_type); member_types.Add(&int32_type); - const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, member_types); + const auto& struct_type = NativeStructType::FromNativeTypes(Z, member_types); auto& arguments = *new (Z) NativeTypes(Z, 15); arguments.Add(&float_type); @@ -342,20 +385,19 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_struct16bytesMixedx10_3) { half_float_member_types.Add(&int32_type); half_float_member_types.Add(&float_type); const auto& half_float_type = - NativeCompoundType::FromNativeTypes(Z, half_float_member_types); + NativeStructType::FromNativeTypes(Z, half_float_member_types); const auto& float_array_type = *new (Z) NativeArrayType(float_type, 1); auto& full_float_member_types = *new (Z) NativeTypes(Z, 1); full_float_member_types.Add(&float_array_type); const auto& full_float_type = - NativeCompoundType::FromNativeTypes(Z, full_float_member_types); + NativeStructType::FromNativeTypes(Z, full_float_member_types); auto& member_types = *new (Z) NativeTypes(Z, 3); member_types.Add(&int32_type); member_types.Add(&half_float_type); member_types.Add(&full_float_type); - const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, member_types); + const auto& struct_type = NativeStructType::FromNativeTypes(Z, member_types); auto& arguments = *new (Z) NativeTypes(Z, 11); arguments.Add(&struct_type); @@ -389,8 +431,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_struct8bytesx1) { member_types.Add(&int8type); member_types.Add(&int8type); member_types.Add(&int8type); - const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, member_types); + const auto& struct_type = NativeStructType::FromNativeTypes(Z, member_types); auto& arguments = *new (Z) NativeTypes(Z, 1); arguments.Add(&struct_type); @@ -418,7 +459,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_struct8bytesPackedx10) { member_types.Add(&int8_type); member_types.Add(&int8_type); const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, member_types, /*packing=*/1); + NativeStructType::FromNativeTypes(Z, member_types, /*packing=*/1); EXPECT_EQ(8, struct_type.SizeInBytes()); EXPECT(struct_type.ContainsUnalignedMembers()); @@ -456,7 +497,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_structPacked) { member_types.Add(&int8_type); member_types.Add(&double_type); const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, member_types, /*packing=*/1); + NativeStructType::FromNativeTypes(Z, member_types, /*packing=*/1); EXPECT_EQ(9, struct_type.SizeInBytes()); EXPECT(struct_type.ContainsUnalignedMembers()); @@ -469,6 +510,51 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_structPacked) { RunSignatureTest(Z, "structPacked", arguments, struct_type); } +// The union is only 5 bytes because it's members are packed. +// +// Many calling conventions pass this struct in single registers or less +// stack slots because of this. +// +// Non-windows x64 passes this struct on the stack instead of in a single +// CPU register, because it contains a mis-aligned member. +// +// See the *.expect in ./unit_tests for this behavior. +UNIT_TEST_CASE_WITH_ZONE(NativeCallingConvention_union5bytesPackedx10) { + const auto& uint8_type = *new (Z) NativePrimitiveType(kUint8); + const auto& uint32_type = *new (Z) NativePrimitiveType(kUint32); + + auto& inner_members = *new (Z) NativeTypes(Z, 2); + inner_members.Add(&uint8_type); + inner_members.Add(&uint32_type); + const intptr_t packing = 1; + const auto& struct_type = + NativeStructType::FromNativeTypes(Z, inner_members, packing); + + const auto& array_type = *new (Z) NativeArrayType(uint8_type, 5); + + auto& member_types = *new (Z) NativeTypes(Z, 2); + member_types.Add(&array_type); + member_types.Add(&struct_type); + const auto& union_type = NativeUnionType::FromNativeTypes(Z, member_types); + + EXPECT_EQ(5, union_type.SizeInBytes()); + EXPECT_EQ(1, union_type.AlignmentInBytesField()); + + auto& arguments = *new (Z) NativeTypes(Z, 10); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + arguments.Add(&union_type); + + RunSignatureTest(Z, "union5bytesPackedx10", arguments, union_type); +} + } // namespace ffi } // namespace compiler } // namespace dart diff --git a/runtime/vm/compiler/ffi/native_type.cc b/runtime/vm/compiler/ffi/native_type.cc index cd4cbbbda58a..b78b206a75df 100644 --- a/runtime/vm/compiler/ffi/native_type.cc +++ b/runtime/vm/compiler/ffi/native_type.cc @@ -162,10 +162,9 @@ static bool ContainsHomogenuousFloatsInternal(const NativeTypes& types); // Keep consistent with // pkg/vm/lib/transformations/ffi_definitions.dart:StructLayout:_calculateLayout. -NativeCompoundType& NativeCompoundType::FromNativeTypes( - Zone* zone, - const NativeTypes& members, - intptr_t member_packing) { +NativeStructType& NativeStructType::FromNativeTypes(Zone* zone, + const NativeTypes& members, + intptr_t member_packing) { intptr_t offset = 0; const intptr_t kAtLeast1ByteAligned = 1; @@ -211,8 +210,37 @@ NativeCompoundType& NativeCompoundType::FromNativeTypes( } const intptr_t size = Utils::RoundUp(offset, alignment_field); - return *new (zone) NativeCompoundType(members, member_offsets, size, - alignment_field, alignment_stack); + return *new (zone) NativeStructType(members, member_offsets, size, + alignment_field, alignment_stack); +} + +// Keep consistent with +// pkg/vm/lib/transformations/ffi_definitions.dart:StructLayout:_calculateLayout. +NativeUnionType& NativeUnionType::FromNativeTypes(Zone* zone, + const NativeTypes& members) { + intptr_t size = 0; + + const intptr_t kAtLeast1ByteAligned = 1; + // If this union is nested in a struct, it should be aligned to the + // largest alignment of its members. + intptr_t alignment_field = kAtLeast1ByteAligned; + // If this union is passed on the stack, it should be aligned to the largest + // alignment of its members when passing those members on the stack. + intptr_t alignment_stack = kAtLeast1ByteAligned; + + for (intptr_t i = 0; i < members.length(); i++) { + const NativeType& member = *members[i]; + const intptr_t member_size = member.SizeInBytes(); + const intptr_t member_align_field = member.AlignmentInBytesField(); + const intptr_t member_align_stack = member.AlignmentInBytesStack(); + size = Utils::Maximum(size, member_size); + alignment_field = Utils::Maximum(alignment_field, member_align_field); + alignment_stack = Utils::Maximum(alignment_stack, member_align_stack); + } + size = Utils::RoundUp(size, alignment_field); + + return *new (zone) + NativeUnionType(members, size, alignment_field, alignment_stack); } #if !defined(DART_PRECOMPILED_RUNTIME) && !defined(FFI_UNIT_TESTS) @@ -371,6 +399,11 @@ NativeType& NativeType::FromAbstractType(Zone* zone, const AbstractType& type) { // User-defined structs. const auto& cls = Class::Handle(zone, type.type_class()); + const auto& superClass = Class::Handle(zone, cls.SuperClass()); + const bool is_struct = String::Handle(zone, superClass.UserVisibleName()) + .Equals(Symbols::Struct()); + ASSERT(is_struct || String::Handle(zone, superClass.UserVisibleName()) + .Equals(Symbols::Union())); auto& pragmas = Object::Handle(zone); Library::FindPragma(dart::Thread::Current(), /*only_core=*/false, cls, @@ -454,8 +487,12 @@ NativeType& NativeType::FromAbstractType(Zone* zone, const AbstractType& type) { } } - return NativeCompoundType::FromNativeTypes(zone, field_native_types, + if (is_struct) { + return NativeStructType::FromNativeTypes(zone, field_native_types, member_packing); + } else { + return NativeUnionType::FromNativeTypes(zone, field_native_types); + } } #endif @@ -560,7 +597,8 @@ void NativeArrayType::PrintTo(BaseTextBuffer* f, void NativeCompoundType::PrintTo(BaseTextBuffer* f, bool multi_line, bool verbose) const { - f->AddString("Compound("); + PrintCompoundType(f); + f->AddString("("); f->Printf("size: %" Pd "", SizeInBytes()); if (verbose) { f->Printf(", field alignment: %" Pd ", ", AlignmentInBytesField()); @@ -577,7 +615,7 @@ void NativeCompoundType::PrintTo(BaseTextBuffer* f, f->AddString(", "); } } - f->Printf("%" Pd ": ", member_offsets_[i]); + PrintMemberOffset(f, i); members_[i]->PrintTo(f); } if (multi_line) { @@ -591,6 +629,19 @@ void NativeCompoundType::PrintTo(BaseTextBuffer* f, } } +void NativeStructType::PrintCompoundType(BaseTextBuffer* f) const { + f->AddString("Struct"); +} + +void NativeUnionType::PrintCompoundType(BaseTextBuffer* f) const { + f->AddString("Union"); +} + +void NativeStructType::PrintMemberOffset(BaseTextBuffer* f, + intptr_t member_index) const { + f->Printf("%" Pd ": ", member_offsets_[member_index]); +} + #if !defined(FFI_UNIT_TESTS) const char* NativeFunctionType::ToCString() const { return ToCString(Thread::Current()->zone()); @@ -617,7 +668,7 @@ intptr_t NativeArrayType::NumPrimitiveMembersRecursive() const { return element_type_.NumPrimitiveMembersRecursive() * length_; } -intptr_t NativeCompoundType::NumPrimitiveMembersRecursive() const { +intptr_t NativeStructType::NumPrimitiveMembersRecursive() const { intptr_t count = 0; for (intptr_t i = 0; i < members_.length(); i++) { count += members_[i]->NumPrimitiveMembersRecursive(); @@ -625,6 +676,14 @@ intptr_t NativeCompoundType::NumPrimitiveMembersRecursive() const { return count; } +intptr_t NativeUnionType::NumPrimitiveMembersRecursive() const { + intptr_t count = 0; + for (intptr_t i = 0; i < members_.length(); i++) { + count = Utils::Maximum(count, members_[i]->NumPrimitiveMembersRecursive()); + } + return count; +} + const NativePrimitiveType& NativePrimitiveType::FirstPrimitiveMember() const { return *this; } @@ -695,7 +754,7 @@ bool NativeArrayType::ContainsOnlyFloats(Range range) const { return true; } -bool NativeCompoundType::ContainsOnlyFloats(Range range) const { +bool NativeStructType::ContainsOnlyFloats(Range range) const { const auto this_range = Range::StartAndEnd(0, SizeInBytes()); ASSERT(this_range.Contains(range)); @@ -721,6 +780,21 @@ bool NativeCompoundType::ContainsOnlyFloats(Range range) const { return true; } +bool NativeUnionType::ContainsOnlyFloats(Range range) const { + for (intptr_t i = 0; i < members_.length(); i++) { + const auto& member = *members_[i]; + const intptr_t member_size = member.SizeInBytes(); + const auto member_range = Range::StartAndLength(0, member_size); + if (member_range.Overlaps(range)) { + const auto member_range_clipped = member_range.Intersect(range); + if (!member.ContainsOnlyFloats(member_range_clipped)) { + return false; + } + } + } + return true; +} + intptr_t NativeCompoundType::NumberOfWordSizeChunksOnlyFloat() const { // O(n^2) implementation, but only invoked for small structs. ASSERT(SizeInBytes() <= 16); @@ -767,7 +841,7 @@ bool NativeArrayType::ContainsUnalignedMembers(intptr_t offset) const { return false; } -bool NativeCompoundType::ContainsUnalignedMembers(intptr_t offset) const { +bool NativeStructType::ContainsUnalignedMembers(intptr_t offset) const { for (intptr_t i = 0; i < members_.length(); i++) { const auto& member = *members_.At(i); const intptr_t member_offset = member_offsets_.At(i); @@ -778,6 +852,16 @@ bool NativeCompoundType::ContainsUnalignedMembers(intptr_t offset) const { return false; } +bool NativeUnionType::ContainsUnalignedMembers(intptr_t offset) const { + for (intptr_t i = 0; i < members_.length(); i++) { + const auto& member = *members_.At(i); + if (member.ContainsUnalignedMembers(offset)) { + return true; + } + } + return false; +} + static void ContainsHomogenuousFloatsRecursive(const NativeTypes& types, bool* only_float, bool* only_double) { diff --git a/runtime/vm/compiler/ffi/native_type.h b/runtime/vm/compiler/ffi/native_type.h index e7a156eb1ee8..de69bd508274 100644 --- a/runtime/vm/compiler/ffi/native_type.h +++ b/runtime/vm/compiler/ffi/native_type.h @@ -257,20 +257,10 @@ class NativeArrayType : public NativeType { using NativeTypes = ZoneGrowableArray; -// Struct -// -// TODO(dartbug.com/38491): Support unions. +// Compound native types: native arrays and native structs. class NativeCompoundType : public NativeType { public: - static NativeCompoundType& FromNativeTypes( - Zone* zone, - const NativeTypes& members, - intptr_t member_packing = kMaxInt32); - const NativeTypes& members() const { return members_; } - const ZoneGrowableArray& member_offsets() const { - return member_offsets_; - } virtual bool IsCompound() const { return true; } @@ -285,7 +275,7 @@ class NativeCompoundType : public NativeType { bool verbose = true) const; #if !defined(DART_PRECOMPILED_RUNTIME) - virtual bool ContainsOnlyFloats(Range range) const; + virtual bool ContainsOnlyFloats(Range range) const = 0; // Returns how many word-sized chuncks _only_ contain floats. // @@ -298,7 +288,7 @@ class NativeCompoundType : public NativeType { intptr_t NumberOfWordSizeChunksNotOnlyFloat() const; #endif // !defined(DART_PRECOMPILED_RUNTIME) - virtual bool ContainsUnalignedMembers(intptr_t offset = 0) const; + virtual bool ContainsUnalignedMembers(intptr_t offset = 0) const = 0; // Whether this type has only same-size floating point members. // @@ -306,26 +296,88 @@ class NativeCompoundType : public NativeType { // and arm64. bool ContainsHomogenuousFloats() const; - virtual intptr_t NumPrimitiveMembersRecursive() const; + virtual intptr_t NumPrimitiveMembersRecursive() const = 0; virtual const NativePrimitiveType& FirstPrimitiveMember() const; - private: + protected: NativeCompoundType(const NativeTypes& members, - const ZoneGrowableArray& member_offsets, intptr_t size, intptr_t alignment_field, intptr_t alignment_stack) : members_(members), - member_offsets_(member_offsets), size_(size), alignment_field_(alignment_field), alignment_stack_(alignment_stack) {} const NativeTypes& members_; - const ZoneGrowableArray& member_offsets_; const intptr_t size_; const intptr_t alignment_field_; const intptr_t alignment_stack_; + + virtual void PrintCompoundType(BaseTextBuffer* f) const = 0; + virtual void PrintMemberOffset(BaseTextBuffer* f, + intptr_t member_index) const {} +}; + +// Native structs. +class NativeStructType : public NativeCompoundType { + public: + static NativeStructType& FromNativeTypes(Zone* zone, + const NativeTypes& members, + intptr_t member_packing = kMaxInt32); + + const ZoneGrowableArray& member_offsets() const { + return member_offsets_; + } + +#if !defined(DART_PRECOMPILED_RUNTIME) + virtual bool ContainsOnlyFloats(Range range) const; +#endif // !defined(DART_PRECOMPILED_RUNTIME) + + virtual bool ContainsUnalignedMembers(intptr_t offset = 0) const; + + virtual intptr_t NumPrimitiveMembersRecursive() const; + + protected: + virtual void PrintCompoundType(BaseTextBuffer* f) const; + virtual void PrintMemberOffset(BaseTextBuffer* f, + intptr_t member_index) const; + + private: + NativeStructType(const NativeTypes& members, + const ZoneGrowableArray& member_offsets, + intptr_t size, + intptr_t alignment_field, + intptr_t alignment_stack) + : NativeCompoundType(members, size, alignment_field, alignment_stack), + member_offsets_(member_offsets) {} + + const ZoneGrowableArray& member_offsets_; +}; + +// Native unions. +class NativeUnionType : public NativeCompoundType { + public: + static NativeUnionType& FromNativeTypes(Zone* zone, + const NativeTypes& members); + +#if !defined(DART_PRECOMPILED_RUNTIME) + virtual bool ContainsOnlyFloats(Range range) const; +#endif // !defined(DART_PRECOMPILED_RUNTIME) + + virtual bool ContainsUnalignedMembers(intptr_t offset = 0) const; + + virtual intptr_t NumPrimitiveMembersRecursive() const; + + protected: + virtual void PrintCompoundType(BaseTextBuffer* f) const; + + private: + NativeUnionType(const NativeTypes& members, + intptr_t size, + intptr_t alignment_field, + intptr_t alignment_stack) + : NativeCompoundType(members, size, alignment_field, alignment_stack) {} }; class NativeFunctionType : public ZoneAllocated { diff --git a/runtime/vm/compiler/ffi/native_type_test.cc b/runtime/vm/compiler/ffi/native_type_test.cc index 63cc7b412b4e..d132b9159ccb 100644 --- a/runtime/vm/compiler/ffi/native_type_test.cc +++ b/runtime/vm/compiler/ffi/native_type_test.cc @@ -17,7 +17,7 @@ const NativeCompoundType& RunStructTest(dart::Zone* zone, const NativeTypes& member_types, intptr_t packing = kMaxInt32) { const auto& struct_type = - NativeCompoundType::FromNativeTypes(zone, member_types, packing); + NativeStructType::FromNativeTypes(zone, member_types, packing); const char* test_result = struct_type.ToCString(zone, /*multi_line=*/true); @@ -181,7 +181,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCompoundType_floatarray) { auto& inner_struct_members = *new (Z) NativeTypes(Z, 1); inner_struct_members.Add(&inner_array_type); const auto& inner_struct = - NativeCompoundType::FromNativeTypes(Z, inner_struct_members); + NativeStructType::FromNativeTypes(Z, inner_struct_members); const auto& array_type = *new (Z) NativeArrayType(inner_struct, 2); @@ -207,7 +207,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCompoundType_packed) { const intptr_t packing = 1; const auto& struct_type = - NativeCompoundType::FromNativeTypes(Z, members, packing); + NativeStructType::FromNativeTypes(Z, members, packing); // Should be 3 bytes on every platform. EXPECT_EQ(3, struct_type.SizeInBytes()); @@ -223,7 +223,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCompoundType_packed_array) { inner_members.Add(&uint8_type); const intptr_t packing = 1; const auto& inner_struct_type = - NativeCompoundType::FromNativeTypes(Z, inner_members, packing); + NativeStructType::FromNativeTypes(Z, inner_members, packing); EXPECT_EQ(3, inner_struct_type.SizeInBytes()); // Non-windows x64 considers this struct as all members aligned, even though @@ -234,7 +234,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCompoundType_packed_array) { auto& members = *new (Z) NativeTypes(Z, 1); members.Add(&array_type); - const auto& struct_type = NativeCompoundType::FromNativeTypes(Z, members); + const auto& struct_type = NativeStructType::FromNativeTypes(Z, members); EXPECT_EQ(6, struct_type.SizeInBytes()); // Non-windows x64 passes this as a struct with unaligned members, because @@ -251,7 +251,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCompoundType_packed_nested) { inner_members.Add(&uint8_type); const intptr_t packing = 1; const auto& inner_struct_type = - NativeCompoundType::FromNativeTypes(Z, inner_members, packing); + NativeStructType::FromNativeTypes(Z, inner_members, packing); EXPECT_EQ(5, inner_struct_type.SizeInBytes()); // Non-windows x64 considers this struct as all members aligned, even though @@ -261,7 +261,7 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCompoundType_packed_nested) { auto& members = *new (Z) NativeTypes(Z, 2); members.Add(&uint8_type); members.Add(&inner_struct_type); - const auto& struct_type = NativeCompoundType::FromNativeTypes(Z, members); + const auto& struct_type = NativeStructType::FromNativeTypes(Z, members); EXPECT_EQ(6, struct_type.SizeInBytes()); // Non-windows x64 passes this as a struct with unaligned members, even @@ -269,6 +269,76 @@ UNIT_TEST_CASE_WITH_ZONE(NativeCompoundType_packed_nested) { EXPECT(struct_type.ContainsUnalignedMembers()); } +UNIT_TEST_CASE_WITH_ZONE(NativeCompoundType_union_size) { + const auto& uint8_type = *new (Z) NativePrimitiveType(kUint8); + const auto& uint32_type = *new (Z) NativePrimitiveType(kUint32); + + const auto& array8_bytes = *new (Z) NativeArrayType(uint32_type, 2); + const auto& array9_bytes = *new (Z) NativeArrayType(uint8_type, 9); + + auto& members = *new (Z) NativeTypes(Z, 2); + members.Add(&array8_bytes); + members.Add(&array9_bytes); + const auto& union_type = NativeUnionType::FromNativeTypes(Z, members); + + // The alignment requirements of the first member and the size of the second + // member force the size to be rounded up to 12. + EXPECT_EQ(12, union_type.SizeInBytes()); + + EXPECT(!union_type.ContainsUnalignedMembers()); +} + +UNIT_TEST_CASE_WITH_ZONE(NativeCompoundType_union_primitive_members) { + const auto& float_type = *new (Z) NativePrimitiveType(kFloat); + + const auto& float_array_type = *new (Z) NativeArrayType(float_type, 3); + + auto& struct_member_types = *new (Z) NativeTypes(Z, 4); + struct_member_types.Add(&float_type); + struct_member_types.Add(&float_type); + struct_member_types.Add(&float_type); + struct_member_types.Add(&float_type); + const auto& struct_type = + NativeStructType::FromNativeTypes(Z, struct_member_types); + + auto& member_types = *new (Z) NativeTypes(Z, 2); + member_types.Add(&float_array_type); + member_types.Add(&struct_type); + const auto& union_type = NativeUnionType::FromNativeTypes(Z, member_types); + + EXPECT_EQ(16, union_type.SizeInBytes()); + + EXPECT_EQ(4, union_type.NumPrimitiveMembersRecursive()); + EXPECT(union_type.FirstPrimitiveMember().Equals(float_type)); + EXPECT(union_type.ContainsHomogenuousFloats()); + + EXPECT(!union_type.ContainsUnalignedMembers()); +} + +UNIT_TEST_CASE_WITH_ZONE(NativeCompoundType_union_unaligned) { + const auto& uint8_type = *new (Z) NativePrimitiveType(kUint8); + const auto& uint32_type = *new (Z) NativePrimitiveType(kUint32); + + auto& inner_members = *new (Z) NativeTypes(Z, 2); + inner_members.Add(&uint8_type); + inner_members.Add(&uint32_type); + const intptr_t packing = 1; + const auto& struct_type = + NativeStructType::FromNativeTypes(Z, inner_members, packing); + + const auto& array_type = *new (Z) NativeArrayType(uint8_type, 5); + + auto& member_types = *new (Z) NativeTypes(Z, 2); + member_types.Add(&array_type); + member_types.Add(&struct_type); + const auto& union_type = NativeUnionType::FromNativeTypes(Z, member_types); + + EXPECT_EQ(5, union_type.SizeInBytes()); + EXPECT_EQ(1, union_type.AlignmentInBytesField()); + + EXPECT(union_type.ContainsUnalignedMembers()); +} + } // namespace ffi } // namespace compiler } // namespace dart diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_android.expect index 1170c02f4608..19a950955c0d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_android.expect @@ -1,4 +1,4 @@ -P(r0 int64) Compound(size: 128) +P(r0 int64) Struct(size: 128) r1 int32 => -P(r8 int64) Compound(size: 128) +P(r8 int64) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_ios.expect index 1170c02f4608..19a950955c0d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_ios.expect @@ -1,4 +1,4 @@ -P(r0 int64) Compound(size: 128) +P(r0 int64) Struct(size: 128) r1 int32 => -P(r8 int64) Compound(size: 128) +P(r8 int64) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_linux.expect index 1170c02f4608..19a950955c0d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_linux.expect @@ -1,4 +1,4 @@ -P(r0 int64) Compound(size: 128) +P(r0 int64) Struct(size: 128) r1 int32 => -P(r8 int64) Compound(size: 128) +P(r8 int64) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_macos.expect index 1170c02f4608..19a950955c0d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm64_macos.expect @@ -1,4 +1,4 @@ -P(r0 int64) Compound(size: 128) +P(r0 int64) Struct(size: 128) r1 int32 => -P(r8 int64) Compound(size: 128) +P(r8 int64) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_android.expect index 230a6ab69e01..7acd01533edf 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_android.expect @@ -1,4 +1,4 @@ -M((r2, r3) int64, S+0 int64, S+8 int64, S+16 int64, S+24 int64, S+32 int64, S+40 int64, S+48 int64, S+56 int64, S+64 int64, S+72 int64, S+80 int64, S+88 int64, S+96 int64, S+104 int64, S+112 int64) Compound(size: 128) +M((r2, r3) int64, S+0 int64, S+8 int64, S+16 int64, S+24 int64, S+32 int64, S+40 int64, S+48 int64, S+56 int64, S+64 int64, S+72 int64, S+80 int64, S+88 int64, S+96 int64, S+104 int64, S+112 int64) Struct(size: 128) S+120 int32 => -P(r0 uint32) Compound(size: 128) +P(r0 uint32) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_ios.expect index 230a6ab69e01..7acd01533edf 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_ios.expect @@ -1,4 +1,4 @@ -M((r2, r3) int64, S+0 int64, S+8 int64, S+16 int64, S+24 int64, S+32 int64, S+40 int64, S+48 int64, S+56 int64, S+64 int64, S+72 int64, S+80 int64, S+88 int64, S+96 int64, S+104 int64, S+112 int64) Compound(size: 128) +M((r2, r3) int64, S+0 int64, S+8 int64, S+16 int64, S+24 int64, S+32 int64, S+40 int64, S+48 int64, S+56 int64, S+64 int64, S+72 int64, S+80 int64, S+88 int64, S+96 int64, S+104 int64, S+112 int64) Struct(size: 128) S+120 int32 => -P(r0 uint32) Compound(size: 128) +P(r0 uint32) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_linux.expect index 230a6ab69e01..7acd01533edf 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/arm_linux.expect @@ -1,4 +1,4 @@ -M((r2, r3) int64, S+0 int64, S+8 int64, S+16 int64, S+24 int64, S+32 int64, S+40 int64, S+48 int64, S+56 int64, S+64 int64, S+72 int64, S+80 int64, S+88 int64, S+96 int64, S+104 int64, S+112 int64) Compound(size: 128) +M((r2, r3) int64, S+0 int64, S+8 int64, S+16 int64, S+24 int64, S+32 int64, S+40 int64, S+48 int64, S+56 int64, S+64 int64, S+72 int64, S+80 int64, S+88 int64, S+96 int64, S+104 int64, S+112 int64) Struct(size: 128) S+120 int32 => -P(r0 uint32) Compound(size: 128) +P(r0 uint32) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_android.expect index c765e39b6f36..cc93dfd08a15 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_android.expect @@ -1,4 +1,4 @@ -S+4 Compound(size: 128) +S+4 Struct(size: 128) S+132 int32 => -P(S+0 uint32, ret:eax uint32) Compound(size: 128) +P(S+0 uint32, ret:eax uint32) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_linux.expect index c765e39b6f36..cc93dfd08a15 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_linux.expect @@ -1,4 +1,4 @@ -S+4 Compound(size: 128) +S+4 Struct(size: 128) S+132 int32 => -P(S+0 uint32, ret:eax uint32) Compound(size: 128) +P(S+0 uint32, ret:eax uint32) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_win.expect index c765e39b6f36..cc93dfd08a15 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/ia32_win.expect @@ -1,4 +1,4 @@ -S+4 Compound(size: 128) +S+4 Struct(size: 128) S+132 int32 => -P(S+0 uint32, ret:eax uint32) Compound(size: 128) +P(S+0 uint32, ret:eax uint32) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_ios.expect index f5ce3da4ba2e..c918afa92c54 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_ios.expect @@ -1,4 +1,4 @@ -S+0 Compound(size: 128) +S+0 Struct(size: 128) rsi int32 => -P(rdi int64, ret:rax int64) Compound(size: 128) +P(rdi int64, ret:rax int64) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_linux.expect index f5ce3da4ba2e..c918afa92c54 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_linux.expect @@ -1,4 +1,4 @@ -S+0 Compound(size: 128) +S+0 Struct(size: 128) rsi int32 => -P(rdi int64, ret:rax int64) Compound(size: 128) +P(rdi int64, ret:rax int64) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_macos.expect index f5ce3da4ba2e..c918afa92c54 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_macos.expect @@ -1,4 +1,4 @@ -S+0 Compound(size: 128) +S+0 Struct(size: 128) rsi int32 => -P(rdi int64, ret:rax int64) Compound(size: 128) +P(rdi int64, ret:rax int64) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_win.expect index ff784250b802..754e049515d5 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct128bytesx1/x64_win.expect @@ -1,4 +1,4 @@ -P(rdx int64) Compound(size: 128) +P(rdx int64) Struct(size: 128) r8 int32 => -P(rcx int64, ret:rax int64) Compound(size: 128) +P(rcx int64, ret:rax int64) Struct(size: 128) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_android.expect index f4b87ed65be0..123cea6164c9 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_android.expect @@ -1,15 +1,15 @@ -M(v0 float, v1 float, v2 float, v3 float) Compound(size: 16) +M(v0 float, v1 float, v2 float, v3 float) Struct(size: 16) v4 float -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) -S+96 Compound(size: 16) -S+112 Compound(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) +S+96 Struct(size: 16) +S+112 Struct(size: 16) S+128 float r0 int8 -S+136 Compound(size: 16) +S+136 Struct(size: 16) => -M(v0 float, v1 float, v2 float, v3 float) Compound(size: 16) +M(v0 float, v1 float, v2 float, v3 float) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_ios.expect index 70977c21199f..e62e47939649 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_ios.expect @@ -1,15 +1,15 @@ -M(v0 float, v1 float, v2 float, v3 float) Compound(size: 16) +M(v0 float, v1 float, v2 float, v3 float) Struct(size: 16) v4 float -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) -S+96 Compound(size: 16) -S+112 Compound(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) +S+96 Struct(size: 16) +S+112 Struct(size: 16) S+128 float r0 int32[int8] -S+132 Compound(size: 16) +S+132 Struct(size: 16) => -M(v0 float, v1 float, v2 float, v3 float) Compound(size: 16) +M(v0 float, v1 float, v2 float, v3 float) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_linux.expect index f4b87ed65be0..123cea6164c9 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_linux.expect @@ -1,15 +1,15 @@ -M(v0 float, v1 float, v2 float, v3 float) Compound(size: 16) +M(v0 float, v1 float, v2 float, v3 float) Struct(size: 16) v4 float -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) -S+96 Compound(size: 16) -S+112 Compound(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) +S+96 Struct(size: 16) +S+112 Struct(size: 16) S+128 float r0 int8 -S+136 Compound(size: 16) +S+136 Struct(size: 16) => -M(v0 float, v1 float, v2 float, v3 float) Compound(size: 16) +M(v0 float, v1 float, v2 float, v3 float) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_macos.expect index f4b87ed65be0..123cea6164c9 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm64_macos.expect @@ -1,15 +1,15 @@ -M(v0 float, v1 float, v2 float, v3 float) Compound(size: 16) +M(v0 float, v1 float, v2 float, v3 float) Struct(size: 16) v4 float -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) -S+96 Compound(size: 16) -S+112 Compound(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) +S+96 Struct(size: 16) +S+112 Struct(size: 16) S+128 float r0 int8 -S+136 Compound(size: 16) +S+136 Struct(size: 16) => -M(v0 float, v1 float, v2 float, v3 float) Compound(size: 16) +M(v0 float, v1 float, v2 float, v3 float) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_android.expect index 24fce4129843..cf1731110044 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_android.expect @@ -1,15 +1,15 @@ -M(r1 int32, r2 int32, r3 int32, S+0 int32) Compound(size: 16) +M(r1 int32, r2 int32, r3 int32, S+0 int32) Struct(size: 16) S+4 float -M(S+8 int32, S+12 int32, S+16 int32, S+20 int32) Compound(size: 16) -M(S+24 int32, S+28 int32, S+32 int32, S+36 int32) Compound(size: 16) -M(S+40 int32, S+44 int32, S+48 int32, S+52 int32) Compound(size: 16) -M(S+56 int32, S+60 int32, S+64 int32, S+68 int32) Compound(size: 16) -M(S+72 int32, S+76 int32, S+80 int32, S+84 int32) Compound(size: 16) -M(S+88 int32, S+92 int32, S+96 int32, S+100 int32) Compound(size: 16) -M(S+104 int32, S+108 int32, S+112 int32, S+116 int32) Compound(size: 16) -M(S+120 int32, S+124 int32, S+128 int32, S+132 int32) Compound(size: 16) +M(S+8 int32, S+12 int32, S+16 int32, S+20 int32) Struct(size: 16) +M(S+24 int32, S+28 int32, S+32 int32, S+36 int32) Struct(size: 16) +M(S+40 int32, S+44 int32, S+48 int32, S+52 int32) Struct(size: 16) +M(S+56 int32, S+60 int32, S+64 int32, S+68 int32) Struct(size: 16) +M(S+72 int32, S+76 int32, S+80 int32, S+84 int32) Struct(size: 16) +M(S+88 int32, S+92 int32, S+96 int32, S+100 int32) Struct(size: 16) +M(S+104 int32, S+108 int32, S+112 int32, S+116 int32) Struct(size: 16) +M(S+120 int32, S+124 int32, S+128 int32, S+132 int32) Struct(size: 16) S+136 float S+140 int32[int8] -M(S+144 int32, S+148 int32, S+152 int32, S+156 int32) Compound(size: 16) +M(S+144 int32, S+148 int32, S+152 int32, S+156 int32) Struct(size: 16) => -P(r0 uint32) Compound(size: 16) +P(r0 uint32) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_ios.expect index 124f1cdec922..4ca78126e9ca 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_ios.expect @@ -1,15 +1,15 @@ -M(s0 float, s1 float, s2 float, s3 float) Compound(size: 16) +M(s0 float, s1 float, s2 float, s3 float) Struct(size: 16) s4 float -M(s5 float, s6 float, s7 float, s8 float) Compound(size: 16) -M(s9 float, s10 float, s11 float, s12 float) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) +M(s5 float, s6 float, s7 float, s8 float) Struct(size: 16) +M(s9 float, s10 float, s11 float, s12 float) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) S+96 float r0 int32[int8] -S+100 Compound(size: 16) +S+100 Struct(size: 16) => -M(s0 float, s1 float, s2 float, s3 float) Compound(size: 16) +M(s0 float, s1 float, s2 float, s3 float) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_linux.expect index 124f1cdec922..4ca78126e9ca 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/arm_linux.expect @@ -1,15 +1,15 @@ -M(s0 float, s1 float, s2 float, s3 float) Compound(size: 16) +M(s0 float, s1 float, s2 float, s3 float) Struct(size: 16) s4 float -M(s5 float, s6 float, s7 float, s8 float) Compound(size: 16) -M(s9 float, s10 float, s11 float, s12 float) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) +M(s5 float, s6 float, s7 float, s8 float) Struct(size: 16) +M(s9 float, s10 float, s11 float, s12 float) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) S+96 float r0 int32[int8] -S+100 Compound(size: 16) +S+100 Struct(size: 16) => -M(s0 float, s1 float, s2 float, s3 float) Compound(size: 16) +M(s0 float, s1 float, s2 float, s3 float) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_android.expect index 3c127f997630..9c4467a364b2 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_android.expect @@ -1,15 +1,15 @@ -S+4 Compound(size: 16) +S+4 Struct(size: 16) S+20 float -S+24 Compound(size: 16) -S+40 Compound(size: 16) -S+56 Compound(size: 16) -S+72 Compound(size: 16) -S+88 Compound(size: 16) -S+104 Compound(size: 16) -S+120 Compound(size: 16) -S+136 Compound(size: 16) +S+24 Struct(size: 16) +S+40 Struct(size: 16) +S+56 Struct(size: 16) +S+72 Struct(size: 16) +S+88 Struct(size: 16) +S+104 Struct(size: 16) +S+120 Struct(size: 16) +S+136 Struct(size: 16) S+152 float S+156 int32[int8] -S+160 Compound(size: 16) +S+160 Struct(size: 16) => -P(S+0 uint32, ret:eax uint32) Compound(size: 16) +P(S+0 uint32, ret:eax uint32) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_linux.expect index 3c127f997630..9c4467a364b2 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_linux.expect @@ -1,15 +1,15 @@ -S+4 Compound(size: 16) +S+4 Struct(size: 16) S+20 float -S+24 Compound(size: 16) -S+40 Compound(size: 16) -S+56 Compound(size: 16) -S+72 Compound(size: 16) -S+88 Compound(size: 16) -S+104 Compound(size: 16) -S+120 Compound(size: 16) -S+136 Compound(size: 16) +S+24 Struct(size: 16) +S+40 Struct(size: 16) +S+56 Struct(size: 16) +S+72 Struct(size: 16) +S+88 Struct(size: 16) +S+104 Struct(size: 16) +S+120 Struct(size: 16) +S+136 Struct(size: 16) S+152 float S+156 int32[int8] -S+160 Compound(size: 16) +S+160 Struct(size: 16) => -P(S+0 uint32, ret:eax uint32) Compound(size: 16) +P(S+0 uint32, ret:eax uint32) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_win.expect index 3c127f997630..9c4467a364b2 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/ia32_win.expect @@ -1,15 +1,15 @@ -S+4 Compound(size: 16) +S+4 Struct(size: 16) S+20 float -S+24 Compound(size: 16) -S+40 Compound(size: 16) -S+56 Compound(size: 16) -S+72 Compound(size: 16) -S+88 Compound(size: 16) -S+104 Compound(size: 16) -S+120 Compound(size: 16) -S+136 Compound(size: 16) +S+24 Struct(size: 16) +S+40 Struct(size: 16) +S+56 Struct(size: 16) +S+72 Struct(size: 16) +S+88 Struct(size: 16) +S+104 Struct(size: 16) +S+120 Struct(size: 16) +S+136 Struct(size: 16) S+152 float S+156 int32[int8] -S+160 Compound(size: 16) +S+160 Struct(size: 16) => -P(S+0 uint32, ret:eax uint32) Compound(size: 16) +P(S+0 uint32, ret:eax uint32) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_ios.expect index 991a25252a82..4e2829c9f9b3 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_ios.expect @@ -1,15 +1,15 @@ -M(xmm0 double, xmm1 double) Compound(size: 16) +M(xmm0 double, xmm1 double) Struct(size: 16) xmm2 float -M(xmm3 double, xmm4 double) Compound(size: 16) -M(xmm5 double, xmm6 double) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) +M(xmm3 double, xmm4 double) Struct(size: 16) +M(xmm5 double, xmm6 double) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) xmm7 float rdi int32[int8] -S+96 Compound(size: 16) +S+96 Struct(size: 16) => -M(xmm0 double, xmm1 double) Compound(size: 16) +M(xmm0 double, xmm1 double) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_linux.expect index 991a25252a82..4e2829c9f9b3 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_linux.expect @@ -1,15 +1,15 @@ -M(xmm0 double, xmm1 double) Compound(size: 16) +M(xmm0 double, xmm1 double) Struct(size: 16) xmm2 float -M(xmm3 double, xmm4 double) Compound(size: 16) -M(xmm5 double, xmm6 double) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) +M(xmm3 double, xmm4 double) Struct(size: 16) +M(xmm5 double, xmm6 double) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) xmm7 float rdi int32[int8] -S+96 Compound(size: 16) +S+96 Struct(size: 16) => -M(xmm0 double, xmm1 double) Compound(size: 16) +M(xmm0 double, xmm1 double) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_macos.expect index 991a25252a82..4e2829c9f9b3 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_macos.expect @@ -1,15 +1,15 @@ -M(xmm0 double, xmm1 double) Compound(size: 16) +M(xmm0 double, xmm1 double) Struct(size: 16) xmm2 float -M(xmm3 double, xmm4 double) Compound(size: 16) -M(xmm5 double, xmm6 double) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) +M(xmm3 double, xmm4 double) Struct(size: 16) +M(xmm5 double, xmm6 double) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) xmm7 float rdi int32[int8] -S+96 Compound(size: 16) +S+96 Struct(size: 16) => -M(xmm0 double, xmm1 double) Compound(size: 16) +M(xmm0 double, xmm1 double) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_win.expect index 8e31945f2527..1a06314c2b6d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/x64_win.expect @@ -1,15 +1,15 @@ -P(rdx int64) Compound(size: 16) +P(rdx int64) Struct(size: 16) xmm2 float -P(r9 int64) Compound(size: 16) -P(S+0 int64) Compound(size: 16) -P(S+8 int64) Compound(size: 16) -P(S+16 int64) Compound(size: 16) -P(S+24 int64) Compound(size: 16) -P(S+32 int64) Compound(size: 16) -P(S+40 int64) Compound(size: 16) -P(S+48 int64) Compound(size: 16) +P(r9 int64) Struct(size: 16) +P(S+0 int64) Struct(size: 16) +P(S+8 int64) Struct(size: 16) +P(S+16 int64) Struct(size: 16) +P(S+24 int64) Struct(size: 16) +P(S+32 int64) Struct(size: 16) +P(S+40 int64) Struct(size: 16) +P(S+48 int64) Struct(size: 16) S+56 float S+64 int8 -P(S+72 int64) Compound(size: 16) +P(S+72 int64) Struct(size: 16) => -P(rcx int64, ret:rax int64) Compound(size: 16) +P(rcx int64, ret:rax int64) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_ios.expect index 2b50280abc5b..62ce61580ef4 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_ios.expect @@ -1,13 +1,13 @@ -M(xmm0 double, rdi int64) Compound(size: 16) -M(xmm1 double, rsi int64) Compound(size: 16) -M(xmm2 double, rdx int64) Compound(size: 16) -M(xmm3 double, rcx int64) Compound(size: 16) -M(xmm4 double, r8 int64) Compound(size: 16) -M(xmm5 double, r9 int64) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) +M(xmm0 double, rdi int64) Struct(size: 16) +M(xmm1 double, rsi int64) Struct(size: 16) +M(xmm2 double, rdx int64) Struct(size: 16) +M(xmm3 double, rcx int64) Struct(size: 16) +M(xmm4 double, r8 int64) Struct(size: 16) +M(xmm5 double, r9 int64) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) xmm6 float => -M(xmm0 double, rax int64) Compound(size: 16) +M(xmm0 double, rax int64) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_linux.expect index 2b50280abc5b..62ce61580ef4 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_linux.expect @@ -1,13 +1,13 @@ -M(xmm0 double, rdi int64) Compound(size: 16) -M(xmm1 double, rsi int64) Compound(size: 16) -M(xmm2 double, rdx int64) Compound(size: 16) -M(xmm3 double, rcx int64) Compound(size: 16) -M(xmm4 double, r8 int64) Compound(size: 16) -M(xmm5 double, r9 int64) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) +M(xmm0 double, rdi int64) Struct(size: 16) +M(xmm1 double, rsi int64) Struct(size: 16) +M(xmm2 double, rdx int64) Struct(size: 16) +M(xmm3 double, rcx int64) Struct(size: 16) +M(xmm4 double, r8 int64) Struct(size: 16) +M(xmm5 double, r9 int64) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) xmm6 float => -M(xmm0 double, rax int64) Compound(size: 16) +M(xmm0 double, rax int64) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_macos.expect index 2b50280abc5b..62ce61580ef4 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_macos.expect @@ -1,13 +1,13 @@ -M(xmm0 double, rdi int64) Compound(size: 16) -M(xmm1 double, rsi int64) Compound(size: 16) -M(xmm2 double, rdx int64) Compound(size: 16) -M(xmm3 double, rcx int64) Compound(size: 16) -M(xmm4 double, r8 int64) Compound(size: 16) -M(xmm5 double, r9 int64) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) +M(xmm0 double, rdi int64) Struct(size: 16) +M(xmm1 double, rsi int64) Struct(size: 16) +M(xmm2 double, rdx int64) Struct(size: 16) +M(xmm3 double, rcx int64) Struct(size: 16) +M(xmm4 double, r8 int64) Struct(size: 16) +M(xmm5 double, r9 int64) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) xmm6 float => -M(xmm0 double, rax int64) Compound(size: 16) +M(xmm0 double, rax int64) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_win.expect index d21ee2b11e5c..d237e6e39e9c 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10/x64_win.expect @@ -1,13 +1,13 @@ -P(rdx int64) Compound(size: 16) -P(r8 int64) Compound(size: 16) -P(r9 int64) Compound(size: 16) -P(S+0 int64) Compound(size: 16) -P(S+8 int64) Compound(size: 16) -P(S+16 int64) Compound(size: 16) -P(S+24 int64) Compound(size: 16) -P(S+32 int64) Compound(size: 16) -P(S+40 int64) Compound(size: 16) -P(S+48 int64) Compound(size: 16) +P(rdx int64) Struct(size: 16) +P(r8 int64) Struct(size: 16) +P(r9 int64) Struct(size: 16) +P(S+0 int64) Struct(size: 16) +P(S+8 int64) Struct(size: 16) +P(S+16 int64) Struct(size: 16) +P(S+24 int64) Struct(size: 16) +P(S+32 int64) Struct(size: 16) +P(S+40 int64) Struct(size: 16) +P(S+48 int64) Struct(size: 16) S+56 float => -P(rcx int64, ret:rax int64) Compound(size: 16) +P(rcx int64, ret:rax int64) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_ios.expect index bcdf3b5ccdd3..71af2335f008 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_ios.expect @@ -2,16 +2,16 @@ xmm0 float xmm1 float xmm2 float xmm3 float -M(xmm4 double, rdi int64) Compound(size: 16) -M(xmm5 double, rsi int64) Compound(size: 16) -M(xmm6 double, rdx int64) Compound(size: 16) -M(xmm7 double, rcx int64) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) +M(xmm4 double, rdi int64) Struct(size: 16) +M(xmm5 double, rsi int64) Struct(size: 16) +M(xmm6 double, rdx int64) Struct(size: 16) +M(xmm7 double, rcx int64) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) r8 int32 => -M(xmm0 double, rax int64) Compound(size: 16) +M(xmm0 double, rax int64) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_linux.expect index bcdf3b5ccdd3..71af2335f008 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_linux.expect @@ -2,16 +2,16 @@ xmm0 float xmm1 float xmm2 float xmm3 float -M(xmm4 double, rdi int64) Compound(size: 16) -M(xmm5 double, rsi int64) Compound(size: 16) -M(xmm6 double, rdx int64) Compound(size: 16) -M(xmm7 double, rcx int64) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) +M(xmm4 double, rdi int64) Struct(size: 16) +M(xmm5 double, rsi int64) Struct(size: 16) +M(xmm6 double, rdx int64) Struct(size: 16) +M(xmm7 double, rcx int64) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) r8 int32 => -M(xmm0 double, rax int64) Compound(size: 16) +M(xmm0 double, rax int64) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_macos.expect index bcdf3b5ccdd3..71af2335f008 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_macos.expect @@ -2,16 +2,16 @@ xmm0 float xmm1 float xmm2 float xmm3 float -M(xmm4 double, rdi int64) Compound(size: 16) -M(xmm5 double, rsi int64) Compound(size: 16) -M(xmm6 double, rdx int64) Compound(size: 16) -M(xmm7 double, rcx int64) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) -S+64 Compound(size: 16) -S+80 Compound(size: 16) +M(xmm4 double, rdi int64) Struct(size: 16) +M(xmm5 double, rsi int64) Struct(size: 16) +M(xmm6 double, rdx int64) Struct(size: 16) +M(xmm7 double, rcx int64) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) +S+64 Struct(size: 16) +S+80 Struct(size: 16) r8 int32 => -M(xmm0 double, rax int64) Compound(size: 16) +M(xmm0 double, rax int64) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_win.expect index bb695c2aee0c..51dae2a42f1f 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_2/x64_win.expect @@ -2,16 +2,16 @@ xmm1 float xmm2 float xmm3 float S+0 float -P(S+8 int64) Compound(size: 16) -P(S+16 int64) Compound(size: 16) -P(S+24 int64) Compound(size: 16) -P(S+32 int64) Compound(size: 16) -P(S+40 int64) Compound(size: 16) -P(S+48 int64) Compound(size: 16) -P(S+56 int64) Compound(size: 16) -P(S+64 int64) Compound(size: 16) -P(S+72 int64) Compound(size: 16) -P(S+80 int64) Compound(size: 16) +P(S+8 int64) Struct(size: 16) +P(S+16 int64) Struct(size: 16) +P(S+24 int64) Struct(size: 16) +P(S+32 int64) Struct(size: 16) +P(S+40 int64) Struct(size: 16) +P(S+48 int64) Struct(size: 16) +P(S+56 int64) Struct(size: 16) +P(S+64 int64) Struct(size: 16) +P(S+72 int64) Struct(size: 16) +P(S+80 int64) Struct(size: 16) S+88 int32 => -P(rcx int64, ret:rax int64) Compound(size: 16) +P(rcx int64, ret:rax int64) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_ios.expect index a9ed4cdf2020..e3119e6d1f8c 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_ios.expect @@ -1,13 +1,13 @@ -M(rdi int64, xmm0 double) Compound(size: 16) -M(rsi int64, xmm1 double) Compound(size: 16) -M(rdx int64, xmm2 double) Compound(size: 16) -M(rcx int64, xmm3 double) Compound(size: 16) -M(r8 int64, xmm4 double) Compound(size: 16) -M(r9 int64, xmm5 double) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) +M(rdi int64, xmm0 double) Struct(size: 16) +M(rsi int64, xmm1 double) Struct(size: 16) +M(rdx int64, xmm2 double) Struct(size: 16) +M(rcx int64, xmm3 double) Struct(size: 16) +M(r8 int64, xmm4 double) Struct(size: 16) +M(r9 int64, xmm5 double) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) xmm6 float => -M(rax int64, xmm0 double) Compound(size: 16) +M(rax int64, xmm0 double) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_linux.expect index a9ed4cdf2020..e3119e6d1f8c 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_linux.expect @@ -1,13 +1,13 @@ -M(rdi int64, xmm0 double) Compound(size: 16) -M(rsi int64, xmm1 double) Compound(size: 16) -M(rdx int64, xmm2 double) Compound(size: 16) -M(rcx int64, xmm3 double) Compound(size: 16) -M(r8 int64, xmm4 double) Compound(size: 16) -M(r9 int64, xmm5 double) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) +M(rdi int64, xmm0 double) Struct(size: 16) +M(rsi int64, xmm1 double) Struct(size: 16) +M(rdx int64, xmm2 double) Struct(size: 16) +M(rcx int64, xmm3 double) Struct(size: 16) +M(r8 int64, xmm4 double) Struct(size: 16) +M(r9 int64, xmm5 double) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) xmm6 float => -M(rax int64, xmm0 double) Compound(size: 16) +M(rax int64, xmm0 double) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_macos.expect index a9ed4cdf2020..e3119e6d1f8c 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_macos.expect @@ -1,13 +1,13 @@ -M(rdi int64, xmm0 double) Compound(size: 16) -M(rsi int64, xmm1 double) Compound(size: 16) -M(rdx int64, xmm2 double) Compound(size: 16) -M(rcx int64, xmm3 double) Compound(size: 16) -M(r8 int64, xmm4 double) Compound(size: 16) -M(r9 int64, xmm5 double) Compound(size: 16) -S+0 Compound(size: 16) -S+16 Compound(size: 16) -S+32 Compound(size: 16) -S+48 Compound(size: 16) +M(rdi int64, xmm0 double) Struct(size: 16) +M(rsi int64, xmm1 double) Struct(size: 16) +M(rdx int64, xmm2 double) Struct(size: 16) +M(rcx int64, xmm3 double) Struct(size: 16) +M(r8 int64, xmm4 double) Struct(size: 16) +M(r9 int64, xmm5 double) Struct(size: 16) +S+0 Struct(size: 16) +S+16 Struct(size: 16) +S+32 Struct(size: 16) +S+48 Struct(size: 16) xmm6 float => -M(rax int64, xmm0 double) Compound(size: 16) +M(rax int64, xmm0 double) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_win.expect index d21ee2b11e5c..d237e6e39e9c 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesMixedx10_3/x64_win.expect @@ -1,13 +1,13 @@ -P(rdx int64) Compound(size: 16) -P(r8 int64) Compound(size: 16) -P(r9 int64) Compound(size: 16) -P(S+0 int64) Compound(size: 16) -P(S+8 int64) Compound(size: 16) -P(S+16 int64) Compound(size: 16) -P(S+24 int64) Compound(size: 16) -P(S+32 int64) Compound(size: 16) -P(S+40 int64) Compound(size: 16) -P(S+48 int64) Compound(size: 16) +P(rdx int64) Struct(size: 16) +P(r8 int64) Struct(size: 16) +P(r9 int64) Struct(size: 16) +P(S+0 int64) Struct(size: 16) +P(S+8 int64) Struct(size: 16) +P(S+16 int64) Struct(size: 16) +P(S+24 int64) Struct(size: 16) +P(S+32 int64) Struct(size: 16) +P(S+40 int64) Struct(size: 16) +P(S+48 int64) Struct(size: 16) S+56 float => -P(rcx int64, ret:rax int64) Compound(size: 16) +P(rcx int64, ret:rax int64) Struct(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_android.expect index 121dccb2f53b..0eb0d54da915 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_android.expect @@ -1,12 +1,12 @@ -M(r0 int64) Compound(size: 3) -M(r1 int64) Compound(size: 3) -M(r2 int64) Compound(size: 3) -M(r3 int64) Compound(size: 3) -M(r4 int64) Compound(size: 3) -M(r5 int64) Compound(size: 3) -M(r6 int64) Compound(size: 3) -M(r7 int64) Compound(size: 3) -M(S+0 int64) Compound(size: 3) -M(S+8 int64) Compound(size: 3) +M(r0 int64) Struct(size: 3) +M(r1 int64) Struct(size: 3) +M(r2 int64) Struct(size: 3) +M(r3 int64) Struct(size: 3) +M(r4 int64) Struct(size: 3) +M(r5 int64) Struct(size: 3) +M(r6 int64) Struct(size: 3) +M(r7 int64) Struct(size: 3) +M(S+0 int64) Struct(size: 3) +M(S+8 int64) Struct(size: 3) => -M(r0 int64) Compound(size: 3) +M(r0 int64) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_ios.expect index 121dccb2f53b..0eb0d54da915 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_ios.expect @@ -1,12 +1,12 @@ -M(r0 int64) Compound(size: 3) -M(r1 int64) Compound(size: 3) -M(r2 int64) Compound(size: 3) -M(r3 int64) Compound(size: 3) -M(r4 int64) Compound(size: 3) -M(r5 int64) Compound(size: 3) -M(r6 int64) Compound(size: 3) -M(r7 int64) Compound(size: 3) -M(S+0 int64) Compound(size: 3) -M(S+8 int64) Compound(size: 3) +M(r0 int64) Struct(size: 3) +M(r1 int64) Struct(size: 3) +M(r2 int64) Struct(size: 3) +M(r3 int64) Struct(size: 3) +M(r4 int64) Struct(size: 3) +M(r5 int64) Struct(size: 3) +M(r6 int64) Struct(size: 3) +M(r7 int64) Struct(size: 3) +M(S+0 int64) Struct(size: 3) +M(S+8 int64) Struct(size: 3) => -M(r0 int64) Compound(size: 3) +M(r0 int64) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_linux.expect index 121dccb2f53b..0eb0d54da915 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_linux.expect @@ -1,12 +1,12 @@ -M(r0 int64) Compound(size: 3) -M(r1 int64) Compound(size: 3) -M(r2 int64) Compound(size: 3) -M(r3 int64) Compound(size: 3) -M(r4 int64) Compound(size: 3) -M(r5 int64) Compound(size: 3) -M(r6 int64) Compound(size: 3) -M(r7 int64) Compound(size: 3) -M(S+0 int64) Compound(size: 3) -M(S+8 int64) Compound(size: 3) +M(r0 int64) Struct(size: 3) +M(r1 int64) Struct(size: 3) +M(r2 int64) Struct(size: 3) +M(r3 int64) Struct(size: 3) +M(r4 int64) Struct(size: 3) +M(r5 int64) Struct(size: 3) +M(r6 int64) Struct(size: 3) +M(r7 int64) Struct(size: 3) +M(S+0 int64) Struct(size: 3) +M(S+8 int64) Struct(size: 3) => -M(r0 int64) Compound(size: 3) +M(r0 int64) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_macos.expect index 121dccb2f53b..0eb0d54da915 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm64_macos.expect @@ -1,12 +1,12 @@ -M(r0 int64) Compound(size: 3) -M(r1 int64) Compound(size: 3) -M(r2 int64) Compound(size: 3) -M(r3 int64) Compound(size: 3) -M(r4 int64) Compound(size: 3) -M(r5 int64) Compound(size: 3) -M(r6 int64) Compound(size: 3) -M(r7 int64) Compound(size: 3) -M(S+0 int64) Compound(size: 3) -M(S+8 int64) Compound(size: 3) +M(r0 int64) Struct(size: 3) +M(r1 int64) Struct(size: 3) +M(r2 int64) Struct(size: 3) +M(r3 int64) Struct(size: 3) +M(r4 int64) Struct(size: 3) +M(r5 int64) Struct(size: 3) +M(r6 int64) Struct(size: 3) +M(r7 int64) Struct(size: 3) +M(S+0 int64) Struct(size: 3) +M(S+8 int64) Struct(size: 3) => -M(r0 int64) Compound(size: 3) +M(r0 int64) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_android.expect index 572a779e617a..d976ee3bba58 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_android.expect @@ -1,12 +1,12 @@ -M(r0 int32) Compound(size: 3) -M(r1 int32) Compound(size: 3) -M(r2 int32) Compound(size: 3) -M(r3 int32) Compound(size: 3) -M(S+0 int32) Compound(size: 3) -M(S+4 int32) Compound(size: 3) -M(S+8 int32) Compound(size: 3) -M(S+12 int32) Compound(size: 3) -M(S+16 int32) Compound(size: 3) -M(S+20 int32) Compound(size: 3) +M(r0 int32) Struct(size: 3) +M(r1 int32) Struct(size: 3) +M(r2 int32) Struct(size: 3) +M(r3 int32) Struct(size: 3) +M(S+0 int32) Struct(size: 3) +M(S+4 int32) Struct(size: 3) +M(S+8 int32) Struct(size: 3) +M(S+12 int32) Struct(size: 3) +M(S+16 int32) Struct(size: 3) +M(S+20 int32) Struct(size: 3) => -M(r0 uint32) Compound(size: 3) +M(r0 uint32) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_ios.expect index 572a779e617a..d976ee3bba58 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_ios.expect @@ -1,12 +1,12 @@ -M(r0 int32) Compound(size: 3) -M(r1 int32) Compound(size: 3) -M(r2 int32) Compound(size: 3) -M(r3 int32) Compound(size: 3) -M(S+0 int32) Compound(size: 3) -M(S+4 int32) Compound(size: 3) -M(S+8 int32) Compound(size: 3) -M(S+12 int32) Compound(size: 3) -M(S+16 int32) Compound(size: 3) -M(S+20 int32) Compound(size: 3) +M(r0 int32) Struct(size: 3) +M(r1 int32) Struct(size: 3) +M(r2 int32) Struct(size: 3) +M(r3 int32) Struct(size: 3) +M(S+0 int32) Struct(size: 3) +M(S+4 int32) Struct(size: 3) +M(S+8 int32) Struct(size: 3) +M(S+12 int32) Struct(size: 3) +M(S+16 int32) Struct(size: 3) +M(S+20 int32) Struct(size: 3) => -M(r0 uint32) Compound(size: 3) +M(r0 uint32) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_linux.expect index 572a779e617a..d976ee3bba58 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/arm_linux.expect @@ -1,12 +1,12 @@ -M(r0 int32) Compound(size: 3) -M(r1 int32) Compound(size: 3) -M(r2 int32) Compound(size: 3) -M(r3 int32) Compound(size: 3) -M(S+0 int32) Compound(size: 3) -M(S+4 int32) Compound(size: 3) -M(S+8 int32) Compound(size: 3) -M(S+12 int32) Compound(size: 3) -M(S+16 int32) Compound(size: 3) -M(S+20 int32) Compound(size: 3) +M(r0 int32) Struct(size: 3) +M(r1 int32) Struct(size: 3) +M(r2 int32) Struct(size: 3) +M(r3 int32) Struct(size: 3) +M(S+0 int32) Struct(size: 3) +M(S+4 int32) Struct(size: 3) +M(S+8 int32) Struct(size: 3) +M(S+12 int32) Struct(size: 3) +M(S+16 int32) Struct(size: 3) +M(S+20 int32) Struct(size: 3) => -M(r0 uint32) Compound(size: 3) +M(r0 uint32) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_android.expect index 91c05952a692..e42b5c298482 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_android.expect @@ -1,12 +1,12 @@ -S+4 Compound(size: 3) -S+8 Compound(size: 3) -S+12 Compound(size: 3) -S+16 Compound(size: 3) -S+20 Compound(size: 3) -S+24 Compound(size: 3) -S+28 Compound(size: 3) -S+32 Compound(size: 3) -S+36 Compound(size: 3) -S+40 Compound(size: 3) +S+4 Struct(size: 3) +S+8 Struct(size: 3) +S+12 Struct(size: 3) +S+16 Struct(size: 3) +S+20 Struct(size: 3) +S+24 Struct(size: 3) +S+28 Struct(size: 3) +S+32 Struct(size: 3) +S+36 Struct(size: 3) +S+40 Struct(size: 3) => -P(S+0 uint32, ret:eax uint32) Compound(size: 3) +P(S+0 uint32, ret:eax uint32) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_linux.expect index 91c05952a692..e42b5c298482 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_linux.expect @@ -1,12 +1,12 @@ -S+4 Compound(size: 3) -S+8 Compound(size: 3) -S+12 Compound(size: 3) -S+16 Compound(size: 3) -S+20 Compound(size: 3) -S+24 Compound(size: 3) -S+28 Compound(size: 3) -S+32 Compound(size: 3) -S+36 Compound(size: 3) -S+40 Compound(size: 3) +S+4 Struct(size: 3) +S+8 Struct(size: 3) +S+12 Struct(size: 3) +S+16 Struct(size: 3) +S+20 Struct(size: 3) +S+24 Struct(size: 3) +S+28 Struct(size: 3) +S+32 Struct(size: 3) +S+36 Struct(size: 3) +S+40 Struct(size: 3) => -P(S+0 uint32, ret:eax uint32) Compound(size: 3) +P(S+0 uint32, ret:eax uint32) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_win.expect index 91c05952a692..e42b5c298482 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/ia32_win.expect @@ -1,12 +1,12 @@ -S+4 Compound(size: 3) -S+8 Compound(size: 3) -S+12 Compound(size: 3) -S+16 Compound(size: 3) -S+20 Compound(size: 3) -S+24 Compound(size: 3) -S+28 Compound(size: 3) -S+32 Compound(size: 3) -S+36 Compound(size: 3) -S+40 Compound(size: 3) +S+4 Struct(size: 3) +S+8 Struct(size: 3) +S+12 Struct(size: 3) +S+16 Struct(size: 3) +S+20 Struct(size: 3) +S+24 Struct(size: 3) +S+28 Struct(size: 3) +S+32 Struct(size: 3) +S+36 Struct(size: 3) +S+40 Struct(size: 3) => -P(S+0 uint32, ret:eax uint32) Compound(size: 3) +P(S+0 uint32, ret:eax uint32) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_ios.expect index 7f90b7a6a63b..cbc17572696d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_ios.expect @@ -1,12 +1,12 @@ -M(rdi int64) Compound(size: 3) -M(rsi int64) Compound(size: 3) -M(rdx int64) Compound(size: 3) -M(rcx int64) Compound(size: 3) -M(r8 int64) Compound(size: 3) -M(r9 int64) Compound(size: 3) -S+0 Compound(size: 3) -S+8 Compound(size: 3) -S+16 Compound(size: 3) -S+24 Compound(size: 3) +M(rdi int64) Struct(size: 3) +M(rsi int64) Struct(size: 3) +M(rdx int64) Struct(size: 3) +M(rcx int64) Struct(size: 3) +M(r8 int64) Struct(size: 3) +M(r9 int64) Struct(size: 3) +S+0 Struct(size: 3) +S+8 Struct(size: 3) +S+16 Struct(size: 3) +S+24 Struct(size: 3) => -M(rax int64) Compound(size: 3) +M(rax int64) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_linux.expect index 7f90b7a6a63b..cbc17572696d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_linux.expect @@ -1,12 +1,12 @@ -M(rdi int64) Compound(size: 3) -M(rsi int64) Compound(size: 3) -M(rdx int64) Compound(size: 3) -M(rcx int64) Compound(size: 3) -M(r8 int64) Compound(size: 3) -M(r9 int64) Compound(size: 3) -S+0 Compound(size: 3) -S+8 Compound(size: 3) -S+16 Compound(size: 3) -S+24 Compound(size: 3) +M(rdi int64) Struct(size: 3) +M(rsi int64) Struct(size: 3) +M(rdx int64) Struct(size: 3) +M(rcx int64) Struct(size: 3) +M(r8 int64) Struct(size: 3) +M(r9 int64) Struct(size: 3) +S+0 Struct(size: 3) +S+8 Struct(size: 3) +S+16 Struct(size: 3) +S+24 Struct(size: 3) => -M(rax int64) Compound(size: 3) +M(rax int64) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_macos.expect index 7f90b7a6a63b..cbc17572696d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_macos.expect @@ -1,12 +1,12 @@ -M(rdi int64) Compound(size: 3) -M(rsi int64) Compound(size: 3) -M(rdx int64) Compound(size: 3) -M(rcx int64) Compound(size: 3) -M(r8 int64) Compound(size: 3) -M(r9 int64) Compound(size: 3) -S+0 Compound(size: 3) -S+8 Compound(size: 3) -S+16 Compound(size: 3) -S+24 Compound(size: 3) +M(rdi int64) Struct(size: 3) +M(rsi int64) Struct(size: 3) +M(rdx int64) Struct(size: 3) +M(rcx int64) Struct(size: 3) +M(r8 int64) Struct(size: 3) +M(r9 int64) Struct(size: 3) +S+0 Struct(size: 3) +S+8 Struct(size: 3) +S+16 Struct(size: 3) +S+24 Struct(size: 3) => -M(rax int64) Compound(size: 3) +M(rax int64) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_win.expect index 4b80330830a5..59e786e00da6 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/x64_win.expect @@ -1,12 +1,12 @@ -P(rdx int64) Compound(size: 3) -P(r8 int64) Compound(size: 3) -P(r9 int64) Compound(size: 3) -P(S+0 int64) Compound(size: 3) -P(S+8 int64) Compound(size: 3) -P(S+16 int64) Compound(size: 3) -P(S+24 int64) Compound(size: 3) -P(S+32 int64) Compound(size: 3) -P(S+40 int64) Compound(size: 3) -P(S+48 int64) Compound(size: 3) +P(rdx int64) Struct(size: 3) +P(r8 int64) Struct(size: 3) +P(r9 int64) Struct(size: 3) +P(S+0 int64) Struct(size: 3) +P(S+8 int64) Struct(size: 3) +P(S+16 int64) Struct(size: 3) +P(S+24 int64) Struct(size: 3) +P(S+32 int64) Struct(size: 3) +P(S+40 int64) Struct(size: 3) +P(S+48 int64) Struct(size: 3) => -P(rcx int64, ret:rax int64) Compound(size: 3) +P(rcx int64, ret:rax int64) Struct(size: 3) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_android.expect index e7b7d6e5f4ce..0857db5f7f05 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_android.expect @@ -1,12 +1,12 @@ -M(r0 int64) Compound(size: 8) -M(r1 int64) Compound(size: 8) -M(r2 int64) Compound(size: 8) -M(r3 int64) Compound(size: 8) -M(r4 int64) Compound(size: 8) -M(r5 int64) Compound(size: 8) -M(r6 int64) Compound(size: 8) -M(r7 int64) Compound(size: 8) -S+0 Compound(size: 8) -S+8 Compound(size: 8) +M(r0 int64) Struct(size: 8) +M(r1 int64) Struct(size: 8) +M(r2 int64) Struct(size: 8) +M(r3 int64) Struct(size: 8) +M(r4 int64) Struct(size: 8) +M(r5 int64) Struct(size: 8) +M(r6 int64) Struct(size: 8) +M(r7 int64) Struct(size: 8) +S+0 Struct(size: 8) +S+8 Struct(size: 8) => -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_ios.expect index e7b7d6e5f4ce..0857db5f7f05 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_ios.expect @@ -1,12 +1,12 @@ -M(r0 int64) Compound(size: 8) -M(r1 int64) Compound(size: 8) -M(r2 int64) Compound(size: 8) -M(r3 int64) Compound(size: 8) -M(r4 int64) Compound(size: 8) -M(r5 int64) Compound(size: 8) -M(r6 int64) Compound(size: 8) -M(r7 int64) Compound(size: 8) -S+0 Compound(size: 8) -S+8 Compound(size: 8) +M(r0 int64) Struct(size: 8) +M(r1 int64) Struct(size: 8) +M(r2 int64) Struct(size: 8) +M(r3 int64) Struct(size: 8) +M(r4 int64) Struct(size: 8) +M(r5 int64) Struct(size: 8) +M(r6 int64) Struct(size: 8) +M(r7 int64) Struct(size: 8) +S+0 Struct(size: 8) +S+8 Struct(size: 8) => -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_linux.expect index e7b7d6e5f4ce..0857db5f7f05 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_linux.expect @@ -1,12 +1,12 @@ -M(r0 int64) Compound(size: 8) -M(r1 int64) Compound(size: 8) -M(r2 int64) Compound(size: 8) -M(r3 int64) Compound(size: 8) -M(r4 int64) Compound(size: 8) -M(r5 int64) Compound(size: 8) -M(r6 int64) Compound(size: 8) -M(r7 int64) Compound(size: 8) -S+0 Compound(size: 8) -S+8 Compound(size: 8) +M(r0 int64) Struct(size: 8) +M(r1 int64) Struct(size: 8) +M(r2 int64) Struct(size: 8) +M(r3 int64) Struct(size: 8) +M(r4 int64) Struct(size: 8) +M(r5 int64) Struct(size: 8) +M(r6 int64) Struct(size: 8) +M(r7 int64) Struct(size: 8) +S+0 Struct(size: 8) +S+8 Struct(size: 8) => -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_macos.expect index e7b7d6e5f4ce..0857db5f7f05 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm64_macos.expect @@ -1,12 +1,12 @@ -M(r0 int64) Compound(size: 8) -M(r1 int64) Compound(size: 8) -M(r2 int64) Compound(size: 8) -M(r3 int64) Compound(size: 8) -M(r4 int64) Compound(size: 8) -M(r5 int64) Compound(size: 8) -M(r6 int64) Compound(size: 8) -M(r7 int64) Compound(size: 8) -S+0 Compound(size: 8) -S+8 Compound(size: 8) +M(r0 int64) Struct(size: 8) +M(r1 int64) Struct(size: 8) +M(r2 int64) Struct(size: 8) +M(r3 int64) Struct(size: 8) +M(r4 int64) Struct(size: 8) +M(r5 int64) Struct(size: 8) +M(r6 int64) Struct(size: 8) +M(r7 int64) Struct(size: 8) +S+0 Struct(size: 8) +S+8 Struct(size: 8) => -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_android.expect index 49e6d408ee58..e6b29f130763 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_android.expect @@ -1,12 +1,12 @@ -M(r1 int32, r2 int32) Compound(size: 8) -M(r3 int32, S+0 int32) Compound(size: 8) -M(S+4 int32, S+8 int32) Compound(size: 8) -M(S+12 int32, S+16 int32) Compound(size: 8) -M(S+20 int32, S+24 int32) Compound(size: 8) -M(S+28 int32, S+32 int32) Compound(size: 8) -M(S+36 int32, S+40 int32) Compound(size: 8) -M(S+44 int32, S+48 int32) Compound(size: 8) -M(S+52 int32, S+56 int32) Compound(size: 8) -M(S+60 int32, S+64 int32) Compound(size: 8) +M(r1 int32, r2 int32) Struct(size: 8) +M(r3 int32, S+0 int32) Struct(size: 8) +M(S+4 int32, S+8 int32) Struct(size: 8) +M(S+12 int32, S+16 int32) Struct(size: 8) +M(S+20 int32, S+24 int32) Struct(size: 8) +M(S+28 int32, S+32 int32) Struct(size: 8) +M(S+36 int32, S+40 int32) Struct(size: 8) +M(S+44 int32, S+48 int32) Struct(size: 8) +M(S+52 int32, S+56 int32) Struct(size: 8) +M(S+60 int32, S+64 int32) Struct(size: 8) => -P(r0 uint32) Compound(size: 8) +P(r0 uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_ios.expect index 49e6d408ee58..e6b29f130763 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_ios.expect @@ -1,12 +1,12 @@ -M(r1 int32, r2 int32) Compound(size: 8) -M(r3 int32, S+0 int32) Compound(size: 8) -M(S+4 int32, S+8 int32) Compound(size: 8) -M(S+12 int32, S+16 int32) Compound(size: 8) -M(S+20 int32, S+24 int32) Compound(size: 8) -M(S+28 int32, S+32 int32) Compound(size: 8) -M(S+36 int32, S+40 int32) Compound(size: 8) -M(S+44 int32, S+48 int32) Compound(size: 8) -M(S+52 int32, S+56 int32) Compound(size: 8) -M(S+60 int32, S+64 int32) Compound(size: 8) +M(r1 int32, r2 int32) Struct(size: 8) +M(r3 int32, S+0 int32) Struct(size: 8) +M(S+4 int32, S+8 int32) Struct(size: 8) +M(S+12 int32, S+16 int32) Struct(size: 8) +M(S+20 int32, S+24 int32) Struct(size: 8) +M(S+28 int32, S+32 int32) Struct(size: 8) +M(S+36 int32, S+40 int32) Struct(size: 8) +M(S+44 int32, S+48 int32) Struct(size: 8) +M(S+52 int32, S+56 int32) Struct(size: 8) +M(S+60 int32, S+64 int32) Struct(size: 8) => -P(r0 uint32) Compound(size: 8) +P(r0 uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_linux.expect index 49e6d408ee58..e6b29f130763 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/arm_linux.expect @@ -1,12 +1,12 @@ -M(r1 int32, r2 int32) Compound(size: 8) -M(r3 int32, S+0 int32) Compound(size: 8) -M(S+4 int32, S+8 int32) Compound(size: 8) -M(S+12 int32, S+16 int32) Compound(size: 8) -M(S+20 int32, S+24 int32) Compound(size: 8) -M(S+28 int32, S+32 int32) Compound(size: 8) -M(S+36 int32, S+40 int32) Compound(size: 8) -M(S+44 int32, S+48 int32) Compound(size: 8) -M(S+52 int32, S+56 int32) Compound(size: 8) -M(S+60 int32, S+64 int32) Compound(size: 8) +M(r1 int32, r2 int32) Struct(size: 8) +M(r3 int32, S+0 int32) Struct(size: 8) +M(S+4 int32, S+8 int32) Struct(size: 8) +M(S+12 int32, S+16 int32) Struct(size: 8) +M(S+20 int32, S+24 int32) Struct(size: 8) +M(S+28 int32, S+32 int32) Struct(size: 8) +M(S+36 int32, S+40 int32) Struct(size: 8) +M(S+44 int32, S+48 int32) Struct(size: 8) +M(S+52 int32, S+56 int32) Struct(size: 8) +M(S+60 int32, S+64 int32) Struct(size: 8) => -P(r0 uint32) Compound(size: 8) +P(r0 uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_android.expect index 004cbab9e9d9..252af4981b2c 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_android.expect @@ -1,12 +1,12 @@ -S+4 Compound(size: 8) -S+12 Compound(size: 8) -S+20 Compound(size: 8) -S+28 Compound(size: 8) -S+36 Compound(size: 8) -S+44 Compound(size: 8) -S+52 Compound(size: 8) -S+60 Compound(size: 8) -S+68 Compound(size: 8) -S+76 Compound(size: 8) +S+4 Struct(size: 8) +S+12 Struct(size: 8) +S+20 Struct(size: 8) +S+28 Struct(size: 8) +S+36 Struct(size: 8) +S+44 Struct(size: 8) +S+52 Struct(size: 8) +S+60 Struct(size: 8) +S+68 Struct(size: 8) +S+76 Struct(size: 8) => -P(S+0 uint32, ret:eax uint32) Compound(size: 8) +P(S+0 uint32, ret:eax uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_linux.expect index 004cbab9e9d9..252af4981b2c 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_linux.expect @@ -1,12 +1,12 @@ -S+4 Compound(size: 8) -S+12 Compound(size: 8) -S+20 Compound(size: 8) -S+28 Compound(size: 8) -S+36 Compound(size: 8) -S+44 Compound(size: 8) -S+52 Compound(size: 8) -S+60 Compound(size: 8) -S+68 Compound(size: 8) -S+76 Compound(size: 8) +S+4 Struct(size: 8) +S+12 Struct(size: 8) +S+20 Struct(size: 8) +S+28 Struct(size: 8) +S+36 Struct(size: 8) +S+44 Struct(size: 8) +S+52 Struct(size: 8) +S+60 Struct(size: 8) +S+68 Struct(size: 8) +S+76 Struct(size: 8) => -P(S+0 uint32, ret:eax uint32) Compound(size: 8) +P(S+0 uint32, ret:eax uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_win.expect index 632981b988cf..a58c7e6a7dc0 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/ia32_win.expect @@ -1,12 +1,12 @@ -S+0 Compound(size: 8) -S+8 Compound(size: 8) -S+16 Compound(size: 8) -S+24 Compound(size: 8) -S+32 Compound(size: 8) -S+40 Compound(size: 8) -S+48 Compound(size: 8) -S+56 Compound(size: 8) -S+64 Compound(size: 8) -S+72 Compound(size: 8) +S+0 Struct(size: 8) +S+8 Struct(size: 8) +S+16 Struct(size: 8) +S+24 Struct(size: 8) +S+32 Struct(size: 8) +S+40 Struct(size: 8) +S+48 Struct(size: 8) +S+56 Struct(size: 8) +S+64 Struct(size: 8) +S+72 Struct(size: 8) => -M(eax uint32, edx uint32) Compound(size: 8) +M(eax uint32, edx uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_ios.expect index b121f0244859..fab8720f87b6 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_ios.expect @@ -1,12 +1,12 @@ -S+0 Compound(size: 8) -S+8 Compound(size: 8) -S+16 Compound(size: 8) -S+24 Compound(size: 8) -S+32 Compound(size: 8) -S+40 Compound(size: 8) -S+48 Compound(size: 8) -S+56 Compound(size: 8) -S+64 Compound(size: 8) -S+72 Compound(size: 8) +S+0 Struct(size: 8) +S+8 Struct(size: 8) +S+16 Struct(size: 8) +S+24 Struct(size: 8) +S+32 Struct(size: 8) +S+40 Struct(size: 8) +S+48 Struct(size: 8) +S+56 Struct(size: 8) +S+64 Struct(size: 8) +S+72 Struct(size: 8) => -P(rdi int64, ret:rax int64) Compound(size: 8) +P(rdi int64, ret:rax int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_linux.expect index b121f0244859..fab8720f87b6 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_linux.expect @@ -1,12 +1,12 @@ -S+0 Compound(size: 8) -S+8 Compound(size: 8) -S+16 Compound(size: 8) -S+24 Compound(size: 8) -S+32 Compound(size: 8) -S+40 Compound(size: 8) -S+48 Compound(size: 8) -S+56 Compound(size: 8) -S+64 Compound(size: 8) -S+72 Compound(size: 8) +S+0 Struct(size: 8) +S+8 Struct(size: 8) +S+16 Struct(size: 8) +S+24 Struct(size: 8) +S+32 Struct(size: 8) +S+40 Struct(size: 8) +S+48 Struct(size: 8) +S+56 Struct(size: 8) +S+64 Struct(size: 8) +S+72 Struct(size: 8) => -P(rdi int64, ret:rax int64) Compound(size: 8) +P(rdi int64, ret:rax int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_macos.expect index b121f0244859..fab8720f87b6 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_macos.expect @@ -1,12 +1,12 @@ -S+0 Compound(size: 8) -S+8 Compound(size: 8) -S+16 Compound(size: 8) -S+24 Compound(size: 8) -S+32 Compound(size: 8) -S+40 Compound(size: 8) -S+48 Compound(size: 8) -S+56 Compound(size: 8) -S+64 Compound(size: 8) -S+72 Compound(size: 8) +S+0 Struct(size: 8) +S+8 Struct(size: 8) +S+16 Struct(size: 8) +S+24 Struct(size: 8) +S+32 Struct(size: 8) +S+40 Struct(size: 8) +S+48 Struct(size: 8) +S+56 Struct(size: 8) +S+64 Struct(size: 8) +S+72 Struct(size: 8) => -P(rdi int64, ret:rax int64) Compound(size: 8) +P(rdi int64, ret:rax int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_win.expect index 3504b4acc6b6..0b192e9a86fc 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/x64_win.expect @@ -1,12 +1,12 @@ -M(rcx int64) Compound(size: 8) -M(rdx int64) Compound(size: 8) -M(r8 int64) Compound(size: 8) -M(r9 int64) Compound(size: 8) -S+0 Compound(size: 8) -S+8 Compound(size: 8) -S+16 Compound(size: 8) -S+24 Compound(size: 8) -S+32 Compound(size: 8) -S+40 Compound(size: 8) +M(rcx int64) Struct(size: 8) +M(rdx int64) Struct(size: 8) +M(r8 int64) Struct(size: 8) +M(r9 int64) Struct(size: 8) +S+0 Struct(size: 8) +S+8 Struct(size: 8) +S+16 Struct(size: 8) +S+24 Struct(size: 8) +S+32 Struct(size: 8) +S+40 Struct(size: 8) => -M(rax int64) Compound(size: 8) +M(rax int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_android.expect index aae2f45dfebe..a6404edb5636 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_android.expect @@ -1,3 +1,3 @@ -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) => -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_ios.expect index aae2f45dfebe..a6404edb5636 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_ios.expect @@ -1,3 +1,3 @@ -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) => -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_linux.expect index aae2f45dfebe..a6404edb5636 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_linux.expect @@ -1,3 +1,3 @@ -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) => -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_macos.expect index aae2f45dfebe..a6404edb5636 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm64_macos.expect @@ -1,3 +1,3 @@ -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) => -M(r0 int64) Compound(size: 8) +M(r0 int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_android.expect index 0dac74d15233..39b6e9756bc8 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_android.expect @@ -1,3 +1,3 @@ -M(r1 int32, r2 int32) Compound(size: 8) +M(r1 int32, r2 int32) Struct(size: 8) => -P(r0 uint32) Compound(size: 8) +P(r0 uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_ios.expect index 0dac74d15233..39b6e9756bc8 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_ios.expect @@ -1,3 +1,3 @@ -M(r1 int32, r2 int32) Compound(size: 8) +M(r1 int32, r2 int32) Struct(size: 8) => -P(r0 uint32) Compound(size: 8) +P(r0 uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_linux.expect index 0dac74d15233..39b6e9756bc8 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/arm_linux.expect @@ -1,3 +1,3 @@ -M(r1 int32, r2 int32) Compound(size: 8) +M(r1 int32, r2 int32) Struct(size: 8) => -P(r0 uint32) Compound(size: 8) +P(r0 uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_android.expect index b6e748cfd8a0..9917c5d4376f 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_android.expect @@ -1,3 +1,3 @@ -S+4 Compound(size: 8) +S+4 Struct(size: 8) => -P(S+0 uint32, ret:eax uint32) Compound(size: 8) +P(S+0 uint32, ret:eax uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_linux.expect index b6e748cfd8a0..9917c5d4376f 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_linux.expect @@ -1,3 +1,3 @@ -S+4 Compound(size: 8) +S+4 Struct(size: 8) => -P(S+0 uint32, ret:eax uint32) Compound(size: 8) +P(S+0 uint32, ret:eax uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_win.expect index 3778ea7f1f96..c2bedede194d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/ia32_win.expect @@ -1,3 +1,3 @@ -S+0 Compound(size: 8) +S+0 Struct(size: 8) => -M(eax uint32, edx uint32) Compound(size: 8) +M(eax uint32, edx uint32) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_ios.expect index 80d98b3ae0e9..fa9bb3c3fd72 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_ios.expect @@ -1,3 +1,3 @@ -M(rdi int64) Compound(size: 8) +M(rdi int64) Struct(size: 8) => -M(rax int64) Compound(size: 8) +M(rax int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_linux.expect index 80d98b3ae0e9..fa9bb3c3fd72 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_linux.expect @@ -1,3 +1,3 @@ -M(rdi int64) Compound(size: 8) +M(rdi int64) Struct(size: 8) => -M(rax int64) Compound(size: 8) +M(rax int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_macos.expect index 80d98b3ae0e9..fa9bb3c3fd72 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_macos.expect @@ -1,3 +1,3 @@ -M(rdi int64) Compound(size: 8) +M(rdi int64) Struct(size: 8) => -M(rax int64) Compound(size: 8) +M(rax int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_win.expect index 561027252667..cf79ebb0d9a0 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesx1/x64_win.expect @@ -1,3 +1,3 @@ -M(rcx int64) Compound(size: 8) +M(rcx int64) Struct(size: 8) => -M(rax int64) Compound(size: 8) +M(rax int64) Struct(size: 8) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_android.expect index 020f65e8ce78..0af60bd49039 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_android.expect @@ -1,6 +1,6 @@ -M(r0 int64, r1 int64) Compound(size: 9) -M(r2 int64, r3 int64) Compound(size: 9) +M(r0 int64, r1 int64) Struct(size: 9) +M(r2 int64, r3 int64) Struct(size: 9) r4 int8 v0 double => -M(r0 int64, r1 int64) Compound(size: 9) +M(r0 int64, r1 int64) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_ios.expect index 0d234261e0e8..975b44175032 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_ios.expect @@ -1,6 +1,6 @@ -M(r0 int64, r1 int64) Compound(size: 9) -M(r2 int64, r3 int64) Compound(size: 9) +M(r0 int64, r1 int64) Struct(size: 9) +M(r2 int64, r3 int64) Struct(size: 9) r4 int32[int8] v0 double => -M(r0 int64, r1 int64) Compound(size: 9) +M(r0 int64, r1 int64) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_linux.expect index 020f65e8ce78..0af60bd49039 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_linux.expect @@ -1,6 +1,6 @@ -M(r0 int64, r1 int64) Compound(size: 9) -M(r2 int64, r3 int64) Compound(size: 9) +M(r0 int64, r1 int64) Struct(size: 9) +M(r2 int64, r3 int64) Struct(size: 9) r4 int8 v0 double => -M(r0 int64, r1 int64) Compound(size: 9) +M(r0 int64, r1 int64) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_macos.expect index 020f65e8ce78..0af60bd49039 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm64_macos.expect @@ -1,6 +1,6 @@ -M(r0 int64, r1 int64) Compound(size: 9) -M(r2 int64, r3 int64) Compound(size: 9) +M(r0 int64, r1 int64) Struct(size: 9) +M(r2 int64, r3 int64) Struct(size: 9) r4 int8 v0 double => -M(r0 int64, r1 int64) Compound(size: 9) +M(r0 int64, r1 int64) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_android.expect index d52d63e4a7f6..dedbb9396dd6 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_android.expect @@ -1,6 +1,6 @@ -M(r1 int32, r2 int32, r3 int32) Compound(size: 9) -M(S+0 int32, S+4 int32, S+8 int32) Compound(size: 9) +M(r1 int32, r2 int32, r3 int32) Struct(size: 9) +M(S+0 int32, S+4 int32, S+8 int32) Struct(size: 9) S+12 int32[int8] S+16 double => -P(r0 uint32) Compound(size: 9) +P(r0 uint32) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_ios.expect index 17492a209eb5..f362c98ab397 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_ios.expect @@ -1,6 +1,6 @@ -M(r1 int32, r2 int32, r3 int32) Compound(size: 9) -M(S+0 int32, S+4 int32, S+8 int32) Compound(size: 9) +M(r1 int32, r2 int32, r3 int32) Struct(size: 9) +M(S+0 int32, S+4 int32, S+8 int32) Struct(size: 9) S+12 int32[int8] d0 double => -P(r0 uint32) Compound(size: 9) +P(r0 uint32) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_linux.expect index 17492a209eb5..f362c98ab397 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/arm_linux.expect @@ -1,6 +1,6 @@ -M(r1 int32, r2 int32, r3 int32) Compound(size: 9) -M(S+0 int32, S+4 int32, S+8 int32) Compound(size: 9) +M(r1 int32, r2 int32, r3 int32) Struct(size: 9) +M(S+0 int32, S+4 int32, S+8 int32) Struct(size: 9) S+12 int32[int8] d0 double => -P(r0 uint32) Compound(size: 9) +P(r0 uint32) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_android.expect index 33bf360e61ef..8a22e1d44a5d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_android.expect @@ -1,6 +1,6 @@ -S+4 Compound(size: 9) -S+16 Compound(size: 9) +S+4 Struct(size: 9) +S+16 Struct(size: 9) S+28 int32[int8] S+32 double => -P(S+0 uint32, ret:eax uint32) Compound(size: 9) +P(S+0 uint32, ret:eax uint32) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_linux.expect index 33bf360e61ef..8a22e1d44a5d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_linux.expect @@ -1,6 +1,6 @@ -S+4 Compound(size: 9) -S+16 Compound(size: 9) +S+4 Struct(size: 9) +S+16 Struct(size: 9) S+28 int32[int8] S+32 double => -P(S+0 uint32, ret:eax uint32) Compound(size: 9) +P(S+0 uint32, ret:eax uint32) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_win.expect index 33bf360e61ef..8a22e1d44a5d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/ia32_win.expect @@ -1,6 +1,6 @@ -S+4 Compound(size: 9) -S+16 Compound(size: 9) +S+4 Struct(size: 9) +S+16 Struct(size: 9) S+28 int32[int8] S+32 double => -P(S+0 uint32, ret:eax uint32) Compound(size: 9) +P(S+0 uint32, ret:eax uint32) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_ios.expect index c4e54aa9f54f..5753935c4833 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_ios.expect @@ -1,6 +1,6 @@ -S+0 Compound(size: 9) -S+16 Compound(size: 9) +S+0 Struct(size: 9) +S+16 Struct(size: 9) rsi int32[int8] xmm0 double => -P(rdi int64, ret:rax int64) Compound(size: 9) +P(rdi int64, ret:rax int64) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_linux.expect index c4e54aa9f54f..5753935c4833 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_linux.expect @@ -1,6 +1,6 @@ -S+0 Compound(size: 9) -S+16 Compound(size: 9) +S+0 Struct(size: 9) +S+16 Struct(size: 9) rsi int32[int8] xmm0 double => -P(rdi int64, ret:rax int64) Compound(size: 9) +P(rdi int64, ret:rax int64) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_macos.expect index c4e54aa9f54f..5753935c4833 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_macos.expect @@ -1,6 +1,6 @@ -S+0 Compound(size: 9) -S+16 Compound(size: 9) +S+0 Struct(size: 9) +S+16 Struct(size: 9) rsi int32[int8] xmm0 double => -P(rdi int64, ret:rax int64) Compound(size: 9) +P(rdi int64, ret:rax int64) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_win.expect index b4ebbc612cd5..3311a61f9222 100644 --- a/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/x64_win.expect @@ -1,6 +1,6 @@ -P(rdx int64) Compound(size: 9) -P(r8 int64) Compound(size: 9) +P(rdx int64) Struct(size: 9) +P(r8 int64) Struct(size: 9) r9 int8 S+0 double => -P(rcx int64, ret:rax int64) Compound(size: 9) +P(rcx int64, ret:rax int64) Struct(size: 9) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_android.expect index ca69b6c662da..59f05bb1922d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_android.expect @@ -1,4 +1,4 @@ -Compound(size: 88, field alignment: 8, stack alignment: 8, members: { +Struct(size: 88, field alignment: 8, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_ios.expect index ca69b6c662da..59f05bb1922d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_ios.expect @@ -1,4 +1,4 @@ -Compound(size: 88, field alignment: 8, stack alignment: 8, members: { +Struct(size: 88, field alignment: 8, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_linux.expect index ca69b6c662da..59f05bb1922d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 88, field alignment: 8, stack alignment: 8, members: { +Struct(size: 88, field alignment: 8, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_macos.expect index ca69b6c662da..59f05bb1922d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm64_macos.expect @@ -1,4 +1,4 @@ -Compound(size: 88, field alignment: 8, stack alignment: 8, members: { +Struct(size: 88, field alignment: 8, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_android.expect index 124e7693165d..e8eafe51284a 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_android.expect @@ -1,4 +1,4 @@ -Compound(size: 72, field alignment: 8, stack alignment: 8, members: { +Struct(size: 72, field alignment: 8, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_ios.expect index 44136f8a9bb5..848833c7bab1 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_ios.expect @@ -1,4 +1,4 @@ -Compound(size: 64, field alignment: 4, stack alignment: 8, members: { +Struct(size: 64, field alignment: 4, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_linux.expect index 124e7693165d..e8eafe51284a 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/arm_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 72, field alignment: 8, stack alignment: 8, members: { +Struct(size: 72, field alignment: 8, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_android.expect index 24fa174fa333..8c39a9dc6703 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_android.expect @@ -1,4 +1,4 @@ -Compound(size: 64, field alignment: 4, stack alignment: 4, members: { +Struct(size: 64, field alignment: 4, stack alignment: 4, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_linux.expect index 24fa174fa333..8c39a9dc6703 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 64, field alignment: 4, stack alignment: 4, members: { +Struct(size: 64, field alignment: 4, stack alignment: 4, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_win.expect index e0bd22ccf445..bcaefe3f3e06 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/ia32_win.expect @@ -1,4 +1,4 @@ -Compound(size: 72, field alignment: 8, stack alignment: 4, members: { +Struct(size: 72, field alignment: 8, stack alignment: 4, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_ios.expect index ca69b6c662da..59f05bb1922d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_ios.expect @@ -1,4 +1,4 @@ -Compound(size: 88, field alignment: 8, stack alignment: 8, members: { +Struct(size: 88, field alignment: 8, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_linux.expect index ca69b6c662da..59f05bb1922d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 88, field alignment: 8, stack alignment: 8, members: { +Struct(size: 88, field alignment: 8, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_macos.expect index ca69b6c662da..59f05bb1922d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_macos.expect @@ -1,4 +1,4 @@ -Compound(size: 88, field alignment: 8, stack alignment: 8, members: { +Struct(size: 88, field alignment: 8, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_win.expect index ca69b6c662da..59f05bb1922d 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_VeryLargeStruct/x64_win.expect @@ -1,4 +1,4 @@ -Compound(size: 88, field alignment: 8, stack alignment: 8, members: { +Struct(size: 88, field alignment: 8, stack alignment: 8, members: { 0: int8, 2: int16, 4: int32, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_android.expect index 025106d7aaa0..728e01690e26 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_android.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_ios.expect index 71313bc62c6e..21f9c5659dc7 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_ios.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_linux.expect index 025106d7aaa0..728e01690e26 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_linux.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_macos.expect index 025106d7aaa0..728e01690e26 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm64_macos.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_android.expect index 71313bc62c6e..21f9c5659dc7 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_android.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_ios.expect index 71313bc62c6e..21f9c5659dc7 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_ios.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_linux.expect index 71313bc62c6e..21f9c5659dc7 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/arm_linux.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_android.expect index 71313bc62c6e..21f9c5659dc7 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_android.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_linux.expect index 71313bc62c6e..21f9c5659dc7 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_linux.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_win.expect index 71313bc62c6e..21f9c5659dc7 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/ia32_win.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 4, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_ios.expect index 025106d7aaa0..728e01690e26 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_ios.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_linux.expect index 025106d7aaa0..728e01690e26 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_linux.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_macos.expect index 025106d7aaa0..728e01690e26 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_macos.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_win.expect index 025106d7aaa0..728e01690e26 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatarray/x64_win.expect @@ -1,3 +1,3 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { - 0: Array(element type: Compound(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { + 0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_android.expect index 025609f7aeca..c06586754b73 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_android.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_ios.expect index db47a468c7ed..a753409eecef 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_ios.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_linux.expect index 025609f7aeca..c06586754b73 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_macos.expect index 025609f7aeca..c06586754b73 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm64_macos.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_android.expect index db47a468c7ed..a753409eecef 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_android.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_ios.expect index db47a468c7ed..a753409eecef 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_ios.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_linux.expect index db47a468c7ed..a753409eecef 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/arm_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_android.expect index db47a468c7ed..a753409eecef 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_android.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_linux.expect index db47a468c7ed..a753409eecef 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_win.expect index db47a468c7ed..a753409eecef 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/ia32_win.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 4, members: { +Struct(size: 16, field alignment: 4, stack alignment: 4, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_ios.expect index 025609f7aeca..c06586754b73 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_ios.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_linux.expect index 025609f7aeca..c06586754b73 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_macos.expect index 025609f7aeca..c06586754b73 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_macos.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_win.expect index 025609f7aeca..c06586754b73 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_floatx4/x64_win.expect @@ -1,4 +1,4 @@ -Compound(size: 16, field alignment: 4, stack alignment: 8, members: { +Struct(size: 16, field alignment: 4, stack alignment: 8, members: { 0: float, 4: float, 8: float, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_android.expect index a44e66bdbcc9..02a0124bd836 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_android.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 8, members: { +Struct(size: 8, field alignment: 1, stack alignment: 8, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_ios.expect index a44e66bdbcc9..02a0124bd836 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_ios.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 8, members: { +Struct(size: 8, field alignment: 1, stack alignment: 8, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_linux.expect index a44e66bdbcc9..02a0124bd836 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_linux.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 8, members: { +Struct(size: 8, field alignment: 1, stack alignment: 8, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_macos.expect index a44e66bdbcc9..02a0124bd836 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm64_macos.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 8, members: { +Struct(size: 8, field alignment: 1, stack alignment: 8, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_android.expect index 879e00ff0a8f..bf40a47cfed0 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_android.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 4, members: { +Struct(size: 8, field alignment: 1, stack alignment: 4, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_ios.expect index 879e00ff0a8f..bf40a47cfed0 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_ios.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 4, members: { +Struct(size: 8, field alignment: 1, stack alignment: 4, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_linux.expect index 879e00ff0a8f..bf40a47cfed0 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/arm_linux.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 4, members: { +Struct(size: 8, field alignment: 1, stack alignment: 4, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_android.expect index 879e00ff0a8f..bf40a47cfed0 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_android.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 4, members: { +Struct(size: 8, field alignment: 1, stack alignment: 4, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_linux.expect index 879e00ff0a8f..bf40a47cfed0 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_linux.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 4, members: { +Struct(size: 8, field alignment: 1, stack alignment: 4, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_win.expect index 879e00ff0a8f..bf40a47cfed0 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/ia32_win.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 4, members: { +Struct(size: 8, field alignment: 1, stack alignment: 4, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_ios.expect index a44e66bdbcc9..02a0124bd836 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_ios.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 8, members: { +Struct(size: 8, field alignment: 1, stack alignment: 8, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_linux.expect index a44e66bdbcc9..02a0124bd836 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_linux.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 8, members: { +Struct(size: 8, field alignment: 1, stack alignment: 8, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_macos.expect index a44e66bdbcc9..02a0124bd836 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_macos.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 8, members: { +Struct(size: 8, field alignment: 1, stack alignment: 8, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_win.expect index a44e66bdbcc9..02a0124bd836 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8array/x64_win.expect @@ -1,3 +1,3 @@ -Compound(size: 8, field alignment: 1, stack alignment: 8, members: { +Struct(size: 8, field alignment: 1, stack alignment: 8, members: { 0: Array(element type: int8, length: 8) }) diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_android.expect index 146893de9692..e2ae57e878fc 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_android.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 8, members: { +Struct(size: 10, field alignment: 1, stack alignment: 8, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_ios.expect index 146893de9692..e2ae57e878fc 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_ios.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 8, members: { +Struct(size: 10, field alignment: 1, stack alignment: 8, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_linux.expect index 146893de9692..e2ae57e878fc 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 8, members: { +Struct(size: 10, field alignment: 1, stack alignment: 8, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_macos.expect index 146893de9692..e2ae57e878fc 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm64_macos.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 8, members: { +Struct(size: 10, field alignment: 1, stack alignment: 8, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_android.expect index c7c24677a8e5..c11d2ed25259 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_android.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 4, members: { +Struct(size: 10, field alignment: 1, stack alignment: 4, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_ios.expect index c7c24677a8e5..c11d2ed25259 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_ios.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 4, members: { +Struct(size: 10, field alignment: 1, stack alignment: 4, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_linux.expect index c7c24677a8e5..c11d2ed25259 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/arm_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 4, members: { +Struct(size: 10, field alignment: 1, stack alignment: 4, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_android.expect index c7c24677a8e5..c11d2ed25259 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_android.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_android.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 4, members: { +Struct(size: 10, field alignment: 1, stack alignment: 4, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_linux.expect index c7c24677a8e5..c11d2ed25259 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 4, members: { +Struct(size: 10, field alignment: 1, stack alignment: 4, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_win.expect index c7c24677a8e5..c11d2ed25259 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/ia32_win.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 4, members: { +Struct(size: 10, field alignment: 1, stack alignment: 4, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_ios.expect index 146893de9692..e2ae57e878fc 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_ios.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_ios.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 8, members: { +Struct(size: 10, field alignment: 1, stack alignment: 8, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_linux.expect index 146893de9692..e2ae57e878fc 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_linux.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_linux.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 8, members: { +Struct(size: 10, field alignment: 1, stack alignment: 8, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_macos.expect index 146893de9692..e2ae57e878fc 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_macos.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_macos.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 8, members: { +Struct(size: 10, field alignment: 1, stack alignment: 8, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_win.expect index 146893de9692..e2ae57e878fc 100644 --- a/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_win.expect +++ b/runtime/vm/compiler/ffi/unit_tests/struct_int8x10/x64_win.expect @@ -1,4 +1,4 @@ -Compound(size: 10, field alignment: 1, stack alignment: 8, members: { +Struct(size: 10, field alignment: 1, stack alignment: 8, members: { 0: int8, 1: int8, 2: int8, diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_android.expect new file mode 100644 index 000000000000..c2dcf8c7d0f4 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_android.expect @@ -0,0 +1,13 @@ +M(v0 float, v1 float, v2 float, v3 float) Union(size: 16) +M(v4 float, v5 float, v6 float, v7 float) Union(size: 16) +S+0 Union(size: 16) +S+16 Union(size: 16) +S+32 Union(size: 16) +S+48 Union(size: 16) +S+64 Union(size: 16) +S+80 Union(size: 16) +S+96 Union(size: 16) +r0 int8 +S+112 Union(size: 16) +=> +M(v0 float, v1 float, v2 float, v3 float) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_ios.expect new file mode 100644 index 000000000000..198d33126bff --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_ios.expect @@ -0,0 +1,13 @@ +M(v0 float, v1 float, v2 float, v3 float) Union(size: 16) +M(v4 float, v5 float, v6 float, v7 float) Union(size: 16) +S+0 Union(size: 16) +S+16 Union(size: 16) +S+32 Union(size: 16) +S+48 Union(size: 16) +S+64 Union(size: 16) +S+80 Union(size: 16) +S+96 Union(size: 16) +r0 int32[int8] +S+112 Union(size: 16) +=> +M(v0 float, v1 float, v2 float, v3 float) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_linux.expect new file mode 100644 index 000000000000..c2dcf8c7d0f4 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_linux.expect @@ -0,0 +1,13 @@ +M(v0 float, v1 float, v2 float, v3 float) Union(size: 16) +M(v4 float, v5 float, v6 float, v7 float) Union(size: 16) +S+0 Union(size: 16) +S+16 Union(size: 16) +S+32 Union(size: 16) +S+48 Union(size: 16) +S+64 Union(size: 16) +S+80 Union(size: 16) +S+96 Union(size: 16) +r0 int8 +S+112 Union(size: 16) +=> +M(v0 float, v1 float, v2 float, v3 float) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_macos.expect new file mode 100644 index 000000000000..c2dcf8c7d0f4 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm64_macos.expect @@ -0,0 +1,13 @@ +M(v0 float, v1 float, v2 float, v3 float) Union(size: 16) +M(v4 float, v5 float, v6 float, v7 float) Union(size: 16) +S+0 Union(size: 16) +S+16 Union(size: 16) +S+32 Union(size: 16) +S+48 Union(size: 16) +S+64 Union(size: 16) +S+80 Union(size: 16) +S+96 Union(size: 16) +r0 int8 +S+112 Union(size: 16) +=> +M(v0 float, v1 float, v2 float, v3 float) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_android.expect new file mode 100644 index 000000000000..4b1f92d0b811 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_android.expect @@ -0,0 +1,13 @@ +M(r1 int32, r2 int32, r3 int32, S+0 int32) Union(size: 16) +M(S+4 int32, S+8 int32, S+12 int32, S+16 int32) Union(size: 16) +M(S+20 int32, S+24 int32, S+28 int32, S+32 int32) Union(size: 16) +M(S+36 int32, S+40 int32, S+44 int32, S+48 int32) Union(size: 16) +M(S+52 int32, S+56 int32, S+60 int32, S+64 int32) Union(size: 16) +M(S+68 int32, S+72 int32, S+76 int32, S+80 int32) Union(size: 16) +M(S+84 int32, S+88 int32, S+92 int32, S+96 int32) Union(size: 16) +M(S+100 int32, S+104 int32, S+108 int32, S+112 int32) Union(size: 16) +M(S+116 int32, S+120 int32, S+124 int32, S+128 int32) Union(size: 16) +S+132 int32[int8] +M(S+136 int32, S+140 int32, S+144 int32, S+148 int32) Union(size: 16) +=> +P(r0 uint32) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_ios.expect new file mode 100644 index 000000000000..29cf3cef65b3 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_ios.expect @@ -0,0 +1,13 @@ +M(s0 float, s1 float, s2 float, s3 float) Union(size: 16) +M(s4 float, s5 float, s6 float, s7 float) Union(size: 16) +M(s8 float, s9 float, s10 float, s11 float) Union(size: 16) +M(s12 float, s13 float, s14 float, s15 float) Union(size: 16) +S+0 Union(size: 16) +S+16 Union(size: 16) +S+32 Union(size: 16) +S+48 Union(size: 16) +S+64 Union(size: 16) +r0 int32[int8] +S+80 Union(size: 16) +=> +M(s0 float, s1 float, s2 float, s3 float) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_linux.expect new file mode 100644 index 000000000000..29cf3cef65b3 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/arm_linux.expect @@ -0,0 +1,13 @@ +M(s0 float, s1 float, s2 float, s3 float) Union(size: 16) +M(s4 float, s5 float, s6 float, s7 float) Union(size: 16) +M(s8 float, s9 float, s10 float, s11 float) Union(size: 16) +M(s12 float, s13 float, s14 float, s15 float) Union(size: 16) +S+0 Union(size: 16) +S+16 Union(size: 16) +S+32 Union(size: 16) +S+48 Union(size: 16) +S+64 Union(size: 16) +r0 int32[int8] +S+80 Union(size: 16) +=> +M(s0 float, s1 float, s2 float, s3 float) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_android.expect new file mode 100644 index 000000000000..8725ee5b1443 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_android.expect @@ -0,0 +1,13 @@ +S+4 Union(size: 16) +S+20 Union(size: 16) +S+36 Union(size: 16) +S+52 Union(size: 16) +S+68 Union(size: 16) +S+84 Union(size: 16) +S+100 Union(size: 16) +S+116 Union(size: 16) +S+132 Union(size: 16) +S+148 int32[int8] +S+152 Union(size: 16) +=> +P(S+0 uint32, ret:eax uint32) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_linux.expect new file mode 100644 index 000000000000..8725ee5b1443 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_linux.expect @@ -0,0 +1,13 @@ +S+4 Union(size: 16) +S+20 Union(size: 16) +S+36 Union(size: 16) +S+52 Union(size: 16) +S+68 Union(size: 16) +S+84 Union(size: 16) +S+100 Union(size: 16) +S+116 Union(size: 16) +S+132 Union(size: 16) +S+148 int32[int8] +S+152 Union(size: 16) +=> +P(S+0 uint32, ret:eax uint32) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_win.expect new file mode 100644 index 000000000000..8725ee5b1443 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/ia32_win.expect @@ -0,0 +1,13 @@ +S+4 Union(size: 16) +S+20 Union(size: 16) +S+36 Union(size: 16) +S+52 Union(size: 16) +S+68 Union(size: 16) +S+84 Union(size: 16) +S+100 Union(size: 16) +S+116 Union(size: 16) +S+132 Union(size: 16) +S+148 int32[int8] +S+152 Union(size: 16) +=> +P(S+0 uint32, ret:eax uint32) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_ios.expect new file mode 100644 index 000000000000..1b1354d73f2c --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_ios.expect @@ -0,0 +1,13 @@ +M(xmm0 double, xmm1 double) Union(size: 16) +M(xmm2 double, xmm3 double) Union(size: 16) +M(xmm4 double, xmm5 double) Union(size: 16) +M(xmm6 double, xmm7 double) Union(size: 16) +S+0 Union(size: 16) +S+16 Union(size: 16) +S+32 Union(size: 16) +S+48 Union(size: 16) +S+64 Union(size: 16) +rdi int32[int8] +S+80 Union(size: 16) +=> +M(xmm0 double, xmm1 double) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_linux.expect new file mode 100644 index 000000000000..1b1354d73f2c --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_linux.expect @@ -0,0 +1,13 @@ +M(xmm0 double, xmm1 double) Union(size: 16) +M(xmm2 double, xmm3 double) Union(size: 16) +M(xmm4 double, xmm5 double) Union(size: 16) +M(xmm6 double, xmm7 double) Union(size: 16) +S+0 Union(size: 16) +S+16 Union(size: 16) +S+32 Union(size: 16) +S+48 Union(size: 16) +S+64 Union(size: 16) +rdi int32[int8] +S+80 Union(size: 16) +=> +M(xmm0 double, xmm1 double) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_macos.expect new file mode 100644 index 000000000000..1b1354d73f2c --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_macos.expect @@ -0,0 +1,13 @@ +M(xmm0 double, xmm1 double) Union(size: 16) +M(xmm2 double, xmm3 double) Union(size: 16) +M(xmm4 double, xmm5 double) Union(size: 16) +M(xmm6 double, xmm7 double) Union(size: 16) +S+0 Union(size: 16) +S+16 Union(size: 16) +S+32 Union(size: 16) +S+48 Union(size: 16) +S+64 Union(size: 16) +rdi int32[int8] +S+80 Union(size: 16) +=> +M(xmm0 double, xmm1 double) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_win.expect new file mode 100644 index 000000000000..c8e96a49373d --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/x64_win.expect @@ -0,0 +1,13 @@ +P(rdx int64) Union(size: 16) +P(r8 int64) Union(size: 16) +P(r9 int64) Union(size: 16) +P(S+0 int64) Union(size: 16) +P(S+8 int64) Union(size: 16) +P(S+16 int64) Union(size: 16) +P(S+24 int64) Union(size: 16) +P(S+32 int64) Union(size: 16) +P(S+40 int64) Union(size: 16) +S+48 int8 +P(S+56 int64) Union(size: 16) +=> +P(rcx int64, ret:rax int64) Union(size: 16) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_android.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_android.expect new file mode 100644 index 000000000000..5e76e3692a7b --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_android.expect @@ -0,0 +1,12 @@ +M(r0 int64) Union(size: 5) +M(r1 int64) Union(size: 5) +M(r2 int64) Union(size: 5) +M(r3 int64) Union(size: 5) +M(r4 int64) Union(size: 5) +M(r5 int64) Union(size: 5) +M(r6 int64) Union(size: 5) +M(r7 int64) Union(size: 5) +M(S+0 int64) Union(size: 5) +M(S+8 int64) Union(size: 5) +=> +M(r0 int64) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_ios.expect new file mode 100644 index 000000000000..5e76e3692a7b --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_ios.expect @@ -0,0 +1,12 @@ +M(r0 int64) Union(size: 5) +M(r1 int64) Union(size: 5) +M(r2 int64) Union(size: 5) +M(r3 int64) Union(size: 5) +M(r4 int64) Union(size: 5) +M(r5 int64) Union(size: 5) +M(r6 int64) Union(size: 5) +M(r7 int64) Union(size: 5) +M(S+0 int64) Union(size: 5) +M(S+8 int64) Union(size: 5) +=> +M(r0 int64) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_linux.expect new file mode 100644 index 000000000000..5e76e3692a7b --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_linux.expect @@ -0,0 +1,12 @@ +M(r0 int64) Union(size: 5) +M(r1 int64) Union(size: 5) +M(r2 int64) Union(size: 5) +M(r3 int64) Union(size: 5) +M(r4 int64) Union(size: 5) +M(r5 int64) Union(size: 5) +M(r6 int64) Union(size: 5) +M(r7 int64) Union(size: 5) +M(S+0 int64) Union(size: 5) +M(S+8 int64) Union(size: 5) +=> +M(r0 int64) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_macos.expect new file mode 100644 index 000000000000..5e76e3692a7b --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm64_macos.expect @@ -0,0 +1,12 @@ +M(r0 int64) Union(size: 5) +M(r1 int64) Union(size: 5) +M(r2 int64) Union(size: 5) +M(r3 int64) Union(size: 5) +M(r4 int64) Union(size: 5) +M(r5 int64) Union(size: 5) +M(r6 int64) Union(size: 5) +M(r7 int64) Union(size: 5) +M(S+0 int64) Union(size: 5) +M(S+8 int64) Union(size: 5) +=> +M(r0 int64) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_android.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_android.expect new file mode 100644 index 000000000000..395d3f509db2 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_android.expect @@ -0,0 +1,12 @@ +M(r1 int32, r2 int32) Union(size: 5) +M(r3 int32, S+0 int32) Union(size: 5) +M(S+4 int32, S+8 int32) Union(size: 5) +M(S+12 int32, S+16 int32) Union(size: 5) +M(S+20 int32, S+24 int32) Union(size: 5) +M(S+28 int32, S+32 int32) Union(size: 5) +M(S+36 int32, S+40 int32) Union(size: 5) +M(S+44 int32, S+48 int32) Union(size: 5) +M(S+52 int32, S+56 int32) Union(size: 5) +M(S+60 int32, S+64 int32) Union(size: 5) +=> +P(r0 uint32) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_ios.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_ios.expect new file mode 100644 index 000000000000..395d3f509db2 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_ios.expect @@ -0,0 +1,12 @@ +M(r1 int32, r2 int32) Union(size: 5) +M(r3 int32, S+0 int32) Union(size: 5) +M(S+4 int32, S+8 int32) Union(size: 5) +M(S+12 int32, S+16 int32) Union(size: 5) +M(S+20 int32, S+24 int32) Union(size: 5) +M(S+28 int32, S+32 int32) Union(size: 5) +M(S+36 int32, S+40 int32) Union(size: 5) +M(S+44 int32, S+48 int32) Union(size: 5) +M(S+52 int32, S+56 int32) Union(size: 5) +M(S+60 int32, S+64 int32) Union(size: 5) +=> +P(r0 uint32) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_linux.expect new file mode 100644 index 000000000000..395d3f509db2 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/arm_linux.expect @@ -0,0 +1,12 @@ +M(r1 int32, r2 int32) Union(size: 5) +M(r3 int32, S+0 int32) Union(size: 5) +M(S+4 int32, S+8 int32) Union(size: 5) +M(S+12 int32, S+16 int32) Union(size: 5) +M(S+20 int32, S+24 int32) Union(size: 5) +M(S+28 int32, S+32 int32) Union(size: 5) +M(S+36 int32, S+40 int32) Union(size: 5) +M(S+44 int32, S+48 int32) Union(size: 5) +M(S+52 int32, S+56 int32) Union(size: 5) +M(S+60 int32, S+64 int32) Union(size: 5) +=> +P(r0 uint32) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_android.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_android.expect new file mode 100644 index 000000000000..3aa4075672f1 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_android.expect @@ -0,0 +1,12 @@ +S+4 Union(size: 5) +S+12 Union(size: 5) +S+20 Union(size: 5) +S+28 Union(size: 5) +S+36 Union(size: 5) +S+44 Union(size: 5) +S+52 Union(size: 5) +S+60 Union(size: 5) +S+68 Union(size: 5) +S+76 Union(size: 5) +=> +P(S+0 uint32, ret:eax uint32) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_linux.expect new file mode 100644 index 000000000000..3aa4075672f1 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_linux.expect @@ -0,0 +1,12 @@ +S+4 Union(size: 5) +S+12 Union(size: 5) +S+20 Union(size: 5) +S+28 Union(size: 5) +S+36 Union(size: 5) +S+44 Union(size: 5) +S+52 Union(size: 5) +S+60 Union(size: 5) +S+68 Union(size: 5) +S+76 Union(size: 5) +=> +P(S+0 uint32, ret:eax uint32) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_win.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_win.expect new file mode 100644 index 000000000000..3aa4075672f1 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/ia32_win.expect @@ -0,0 +1,12 @@ +S+4 Union(size: 5) +S+12 Union(size: 5) +S+20 Union(size: 5) +S+28 Union(size: 5) +S+36 Union(size: 5) +S+44 Union(size: 5) +S+52 Union(size: 5) +S+60 Union(size: 5) +S+68 Union(size: 5) +S+76 Union(size: 5) +=> +P(S+0 uint32, ret:eax uint32) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_ios.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_ios.expect new file mode 100644 index 000000000000..5119d88d84ee --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_ios.expect @@ -0,0 +1,12 @@ +S+0 Union(size: 5) +S+8 Union(size: 5) +S+16 Union(size: 5) +S+24 Union(size: 5) +S+32 Union(size: 5) +S+40 Union(size: 5) +S+48 Union(size: 5) +S+56 Union(size: 5) +S+64 Union(size: 5) +S+72 Union(size: 5) +=> +P(rdi int64, ret:rax int64) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_linux.expect new file mode 100644 index 000000000000..5119d88d84ee --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_linux.expect @@ -0,0 +1,12 @@ +S+0 Union(size: 5) +S+8 Union(size: 5) +S+16 Union(size: 5) +S+24 Union(size: 5) +S+32 Union(size: 5) +S+40 Union(size: 5) +S+48 Union(size: 5) +S+56 Union(size: 5) +S+64 Union(size: 5) +S+72 Union(size: 5) +=> +P(rdi int64, ret:rax int64) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_macos.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_macos.expect new file mode 100644 index 000000000000..5119d88d84ee --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_macos.expect @@ -0,0 +1,12 @@ +S+0 Union(size: 5) +S+8 Union(size: 5) +S+16 Union(size: 5) +S+24 Union(size: 5) +S+32 Union(size: 5) +S+40 Union(size: 5) +S+48 Union(size: 5) +S+56 Union(size: 5) +S+64 Union(size: 5) +S+72 Union(size: 5) +=> +P(rdi int64, ret:rax int64) Union(size: 5) diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_win.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_win.expect new file mode 100644 index 000000000000..b11d58d40702 --- /dev/null +++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/x64_win.expect @@ -0,0 +1,12 @@ +P(rdx int64) Union(size: 5) +P(r8 int64) Union(size: 5) +P(r9 int64) Union(size: 5) +P(S+0 int64) Union(size: 5) +P(S+8 int64) Union(size: 5) +P(S+16 int64) Union(size: 5) +P(S+24 int64) Union(size: 5) +P(S+32 int64) Union(size: 5) +P(S+40 int64) Union(size: 5) +P(S+48 int64) Union(size: 5) +=> +P(rcx int64, ret:rax int64) Union(size: 5) diff --git a/runtime/vm/symbols.h b/runtime/vm/symbols.h index fa89ba0a22f6..dc6d663ec17d 100644 --- a/runtime/vm/symbols.h +++ b/runtime/vm/symbols.h @@ -291,6 +291,7 @@ class ObjectPointerVisitor; V(Uint8ClampedList, "Uint8ClampedList") \ V(Uint8List, "Uint8List") \ V(UnaryMinus, "unary-") \ + V(Union, "Union") \ V(UnsignedRightShiftOperator, ">>>") \ V(UnhandledException, "UnhandledException") \ V(UnlinkedCall, "UnlinkedCall") \