summaryrefslogtreecommitdiff
path: root/src/jit/lower.cpp
diff options
context:
space:
mode:
authorCarol Eidt <carol.eidt@microsoft.com>2018-09-17 17:46:46 -0700
committerGitHub <noreply@github.com>2018-09-17 17:46:46 -0700
commit6517a3519ef721d50b6b52995ca89d09b46189a2 (patch)
treedb8a6be5e35da93f6c653c1d36cbb732a6beb644 /src/jit/lower.cpp
parent1df22d9d8970215b99f96691336b9b49a223ec1b (diff)
parent28305b5d566c3898fc0aa39e48f367fd1dc01cfb (diff)
downloadcoreclr-6517a3519ef721d50b6b52995ca89d09b46189a2.tar.gz
coreclr-6517a3519ef721d50b6b52995ca89d09b46189a2.tar.bz2
coreclr-6517a3519ef721d50b6b52995ca89d09b46189a2.zip
Merge pull request #15657 from mikedn/fp-divmul-binary
Move FP DIV/MUL handling to genCodeForBinary
Diffstat (limited to 'src/jit/lower.cpp')
-rw-r--r--src/jit/lower.cpp55
1 files changed, 0 insertions, 55 deletions
diff --git a/src/jit/lower.cpp b/src/jit/lower.cpp
index 86005ad26f..ca894f86d9 100644
--- a/src/jit/lower.cpp
+++ b/src/jit/lower.cpp
@@ -5641,61 +5641,6 @@ void Lowering::ContainCheckNode(GenTree* node)
}
//------------------------------------------------------------------------
-// ContainCheckDivOrMod: determine which operands of a div/mod should be contained.
-//
-// Arguments:
-// node - pointer to the GT_UDIV/GT_UMOD node
-//
-void Lowering::ContainCheckDivOrMod(GenTreeOp* node)
-{
- assert(node->OperIs(GT_DIV, GT_MOD, GT_UDIV, GT_UMOD));
-
-#ifdef _TARGET_XARCH_
- GenTree* dividend = node->gtGetOp1();
- GenTree* divisor = node->gtGetOp2();
-
- if (varTypeIsFloating(node->TypeGet()))
- {
- // No implicit conversions at this stage as the expectation is that
- // everything is made explicit by adding casts.
- assert(dividend->TypeGet() == divisor->TypeGet());
-
- if (IsContainableMemoryOp(divisor) || divisor->IsCnsNonZeroFltOrDbl())
- {
- MakeSrcContained(node, divisor);
- }
- else
- {
- // If there are no containable operands, we can make an operand reg optional.
- // SSE2 allows only divisor to be a memory-op.
- divisor->SetRegOptional();
- }
- return;
- }
- bool divisorCanBeRegOptional = true;
-#ifdef _TARGET_X86_
- if (dividend->OperGet() == GT_LONG)
- {
- divisorCanBeRegOptional = false;
- MakeSrcContained(node, dividend);
- }
-#endif
-
- // divisor can be an r/m, but the memory indirection must be of the same size as the divide
- if (IsContainableMemoryOp(divisor) && (divisor->TypeGet() == node->TypeGet()))
- {
- MakeSrcContained(node, divisor);
- }
- else if (divisorCanBeRegOptional)
- {
- // If there are no containable operands, we can make an operand reg optional.
- // Div instruction allows only divisor to be a memory op.
- divisor->SetRegOptional();
- }
-#endif // _TARGET_XARCH_
-}
-
-//------------------------------------------------------------------------
// ContainCheckReturnTrap: determine whether the source of a RETURNTRAP should be contained.
//
// Arguments: