The size of TYP_STRUCT in definition is 1 and it is lower than sizeof(int).
It means TYP_STRUCT should use the node's type instead of its type.
In PUTARG_SPLIT case, it wil use its regtype of child nodes.
ReturnTypeDesc* retTypeDesc = treeNode->AsCall()->GetReturnTypeDesc();
typ = retTypeDesc->GetReturnRegType(refPosition->getMultiRegIdx());
}
+#ifdef _TARGET_ARM_
+ else if (treeNode->OperIsPutArgSplit())
+ {
+ typ = treeNode->AsPutArgSplit()->GetRegType(refPosition->getMultiRegIdx());
+ }
+#endif
#ifdef ARM_SOFTFP
else if (treeNode->OperIsPutArgReg())
{
GenTreePutArgSplit* splitArg = treeNode->AsPutArgSplit();
splitArg->SetRegSpillFlagByIdx(GTF_SPILL, currentRefPosition->getMultiRegIdx());
}
- else if (treeNode->OperIsMultiRegOp())
- {
- GenTreeMultiRegOp* multiReg = treeNode->AsMultiRegOp();
- multiReg->SetRegSpillFlagByIdx(GTF_SPILL, currentRefPosition->getMultiRegIdx());
- }
#endif
}