diff options
author | Bruce Forstall <brucefo@microsoft.com> | 2017-04-27 10:45:36 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-27 10:45:36 -0700 |
commit | 368ee30f34fda812d8d936dff4d59b91270453c1 (patch) | |
tree | 591909af107cb6d812f21e02b4a4805a8cfeff11 | |
parent | beda361f505e8607ca05fea0bee61e21177ef23b (diff) | |
parent | 5b7163c660a81ee39a286c2b28f054678c7109c9 (diff) | |
download | coreclr-368ee30f34fda812d8d936dff4d59b91270453c1.tar.gz coreclr-368ee30f34fda812d8d936dff4d59b91270453c1.tar.bz2 coreclr-368ee30f34fda812d8d936dff4d59b91270453c1.zip |
Merge pull request #11255 from mskvortsov/FixPutArgReg
[RyuJIT/ARM32] Update putarg_reg codegen
-rw-r--r-- | src/jit/codegenarm.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/jit/codegenarm.cpp b/src/jit/codegenarm.cpp index c28b27bf9b..56508038d9 100644 --- a/src/jit/codegenarm.cpp +++ b/src/jit/codegenarm.cpp @@ -900,18 +900,18 @@ void CodeGen::genCodeForTreeNode(GenTreePtr treeNode) break; case GT_PUTARG_REG: - { - NYI_IF(targetType == TYP_STRUCT, "GT_PUTARG_REG: struct support not implemented"); - - // commas show up here commonly, as part of a nullchk operation - GenTree* op1 = treeNode->gtOp.gtOp1->gtEffectiveVal(); - // If child node is not already in the register we need, move it - genConsumeReg(op1); - if (treeNode->gtRegNum != op1->gtRegNum) + assert(targetType != TYP_STRUCT); // Any TYP_STRUCT register args should have been removed by + // fgMorphMultiregStructArg + // We have a normal non-Struct targetType { - inst_RV_RV(ins_Move_Extend(targetType, true), treeNode->gtRegNum, op1->gtRegNum, targetType); + GenTree* op1 = treeNode->gtOp.gtOp1; + // If child node is not already in the register we need, move it + genConsumeReg(op1); + if (targetReg != op1->gtRegNum) + { + inst_RV_RV(ins_Copy(targetType), targetReg, op1->gtRegNum, targetType); + } } - } genProduceReg(treeNode); break; |