[RyuJIT/ARM32] Enable HasMultiRegRetVal() for struct
authorHyung-Kyu Choi <hk0110.choi@samsung.com>
Tue, 13 Jun 2017 13:04:23 +0000 (22:04 +0900)
committerHyung-Kyu Choi <hk0110.choi@samsung.com>
Tue, 13 Jun 2017 13:04:23 +0000 (22:04 +0900)
This will pass some tests and will trigger NYI assertions as expected.

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/c5782d53e52ecbbce25b182c8b8b50da0d18f243

src/coreclr/src/jit/gentree.h

index 21a9609..7a2cc4c 100644 (file)
@@ -3507,9 +3507,12 @@ struct GenTreeCall final : public GenTree
     //
     bool HasMultiRegRetVal() const
     {
-#if (defined(_TARGET_X86_) || defined(_TARGET_ARM_)) && !defined(LEGACY_BACKEND)
+#if defined(_TARGET_X86_) && !defined(LEGACY_BACKEND)
         // LEGACY_BACKEND does not use multi reg returns for calls with long return types
         return varTypeIsLong(gtType);
+#elif FEATURE_MULTIREG_RET && (defined(_TARGET_ARM_) && !defined(LEGACY_BACKEND))
+        // LEGACY_BACKEND does not use multi reg returns for calls with long return types
+        return varTypeIsLong(gtType) || (varTypeIsStruct(gtType) && !HasRetBufArg());
 #elif FEATURE_MULTIREG_RET
         return varTypeIsStruct(gtType) && !HasRetBufArg();
 #else