Account for a reload of umod op2
authorCarol Eidt <carol.eidt@microsoft.com>
Wed, 23 Nov 2016 17:24:41 +0000 (09:24 -0800)
committerCarol Eidt <carol.eidt@microsoft.com>
Wed, 23 Nov 2016 17:24:41 +0000 (09:24 -0800)
src/jit/codegenxarch.cpp

index 7950989..9fd52dc 100644 (file)
@@ -571,10 +571,11 @@ void CodeGen::genCodeForLongUMod(GenTreeOp* node)
     assert(!dividendLo->isContained());
     assert(!dividendHi->isContained());
 
-    GenTreeIntCon* const divisor = node->gtOp2->AsIntCon();
-    assert(!divisor->isContained());
-    assert(divisor->gtIconVal >= 2);
-    assert(divisor->gtIconVal <= 0x3fffffff);
+    GenTree* const divisor = node->gtOp2;
+    assert(divisor->gtSkipReloadOrCopy()->OperGet() == GT_CNS_INT);
+    assert(!divisor->gtSkipReloadOrCopy()->isContained());
+    assert(divisor->gtSkipReloadOrCopy()->AsIntCon()->gtIconVal >= 2);
+    assert(divisor->gtSkipReloadOrCopy()->AsIntCon()->gtIconVal <= 0x3fffffff);
 
     // dividendLo must be in RAX; dividendHi must be in RDX
     genCopyRegIfNeeded(dividendLo, REG_EAX);