diff options
-rw-r--r-- | src/jit/compiler.cpp | 13 | ||||
-rw-r--r-- | tests/arm/Tests.lst | 2 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/jit/compiler.cpp b/src/jit/compiler.cpp index ab5f4743d7..06f31a4db6 100644 --- a/src/jit/compiler.cpp +++ b/src/jit/compiler.cpp @@ -1003,9 +1003,14 @@ var_types Compiler::getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, // if (structSize <= sizeof(double)) { - // We set the "primitive" useType based upon the structSize - // and also examine the clsHnd to see if it is an HFA of count one - useType = getPrimitiveTypeForStruct(structSize, clsHnd); +#if defined LEGACY_BACKEND + if (!IsHfa(clsHnd)) +#endif + { + // We set the "primitive" useType based upon the structSize + // and also examine the clsHnd to see if it is an HFA of count one + useType = getPrimitiveTypeForStruct(structSize, clsHnd); + } } #endif // FEATURE_UNIX_AMD64_STRUCT_PASSING @@ -1043,8 +1048,10 @@ var_types Compiler::getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, // Structs that are HFA's are returned in multiple registers if (IsHfa(clsHnd)) { +#if !defined(LEGACY_BACKEND) // HFA's of count one should have been handled by getPrimitiveTypeForStruct assert(GetHfaCount(clsHnd) >= 2); +#endif // !defined(LEGACY_BACKEND) // setup wbPassType and useType indicate that this is returned by value as an HFA // using multiple registers diff --git a/tests/arm/Tests.lst b/tests/arm/Tests.lst index 40ee298ff4..f88e7fcf6a 100644 --- a/tests/arm/Tests.lst +++ b/tests/arm/Tests.lst @@ -8993,7 +8993,7 @@ RelativePath=JIT\Directed\StructABI\StructABI\StructABI.cmd WorkingDir=JIT\Directed\StructABI\StructABI Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_FAIL;8093 +Categories=EXPECTED_PASS HostStyle=0 [Ackermann.cmd_1125] |