summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2016-09-09 14:59:09 -0700
committerGitHub <noreply@github.com>2016-09-09 14:59:09 -0700
commitcf251889bb85b807b8661311980dd1be462dbe73 (patch)
treee7a92c46680d292573f675d3f87ee27aef38ae8a
parentff53de3231bcd43e077f6a446c01520c2ed1bbea (diff)
parentc16b6bc96c1aa1edd9a3085a12f12a9df4169da5 (diff)
downloadcoreclr-cf251889bb85b807b8661311980dd1be462dbe73.tar.gz
coreclr-cf251889bb85b807b8661311980dd1be462dbe73.tar.bz2
coreclr-cf251889bb85b807b8661311980dd1be462dbe73.zip
Merge pull request #7120 from BruceForstall/Fix7093
Fix #7093
-rw-r--r--src/jit/flowgraph.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/jit/flowgraph.cpp b/src/jit/flowgraph.cpp
index 89b1c46c79..9458967d25 100644
--- a/src/jit/flowgraph.cpp
+++ b/src/jit/flowgraph.cpp
@@ -19810,15 +19810,32 @@ Compiler::fgWalkResult Compiler::fgStress64RsltMulCB(GenTreePtr* pTree, fgW
if (tree->gtOper != GT_MUL || tree->gtType != TYP_INT || (tree->gtOverflow())) {
return WALK_CONTINUE;
-}
+ }
+
+#ifdef DEBUG
+ if (pComp->verbose)
+ {
+ printf("STRESS_64RSLT_MUL before:\n");
+ pComp->gtDispTree(tree);
+ }
+#endif // DEBUG
// To ensure optNarrowTree() doesn't fold back to the original tree.
+ tree->gtOp.gtOp1 = pComp->gtNewCastNode(TYP_LONG, tree->gtOp.gtOp1, TYP_LONG);
tree->gtOp.gtOp1 = pComp->gtNewOperNode(GT_NOP, TYP_LONG, tree->gtOp.gtOp1);
tree->gtOp.gtOp1 = pComp->gtNewCastNode(TYP_LONG, tree->gtOp.gtOp1, TYP_LONG);
- tree->gtOp.gtOp2 = pComp->gtNewCastNode(TYP_LONG, tree->gtOp.gtOp2, TYP_LONG);
+ tree->gtOp.gtOp2 = pComp->gtNewCastNode(TYP_LONG, tree->gtOp.gtOp2, TYP_LONG);
tree->gtType = TYP_LONG;
*pTree = pComp->gtNewCastNode(TYP_INT, tree, TYP_INT);
+#ifdef DEBUG
+ if (pComp->verbose)
+ {
+ printf("STRESS_64RSLT_MUL after:\n");
+ pComp->gtDispTree(*pTree);
+ }
+#endif // DEBUG
+
return WALK_SKIP_SUBTREES;
}
@@ -19826,7 +19843,7 @@ void Compiler::fgStress64RsltMul()
{
if (!compStressCompile(STRESS_64RSLT_MUL, 20)) {
return;
-}
+ }
fgWalkAllTreesPre(fgStress64RsltMulCB, (void*)this);
}