[RyuJIT/ARM32] Fix double type PutArgStk check bug on LSRA init
authorHyeongseok Oh <hseok82.oh@samsung.com>
Tue, 31 Oct 2017 05:14:25 +0000 (14:14 +0900)
committerHyeongseok Oh <hseok82.oh@samsung.com>
Tue, 31 Oct 2017 05:14:25 +0000 (14:14 +0900)
Fix to handle hardfp/softfp all

src/jit/lsraarmarch.cpp

index 1defa6f..08001fb 100644 (file)
@@ -464,9 +464,9 @@ void LinearScan::TreeNodeInfoInitCall(GenTreeCall* call)
             if (!varTypeIsStruct(putArgChild) && !putArgChild->OperIs(GT_FIELD_LIST))
             {
 #ifdef _TARGET_ARM_
-                // The `double` types have been transformed to `long` on arm, while the actual longs
+                // The `double` types could been transformed to `long` on arm, while the actual longs
                 // have been decomposed.
-                const bool isDouble = putArgChild->TypeGet() == TYP_LONG;
+                const bool isDouble = (putArgChild->TypeGet() == TYP_LONG || putArgChild->TypeGet() == TYP_DOUBLE);
                 if (isDouble)
                 {
                     argNode->gtLsraInfo.srcCount = 2;