mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 03:45:46 +00:00
Bug 1025050. Add collectRangeInfoPreTrunc for MMul. r=h4writer.
This commit is contained in:
parent
137b3cccf6
commit
c280c41fc5
@ -4449,6 +4449,7 @@ class MMul : public MBinaryArithInstruction
|
||||
MDefinition *foldsTo(TempAllocator &alloc, bool useValueNumbers);
|
||||
void analyzeEdgeCasesForward();
|
||||
void analyzeEdgeCasesBackward();
|
||||
void collectRangeInfoPreTrunc();
|
||||
|
||||
double getIdentity() {
|
||||
return 1;
|
||||
|
@ -2723,6 +2723,30 @@ MDiv::collectRangeInfoPreTrunc()
|
||||
canBeNegativeZero_ = false;
|
||||
}
|
||||
|
||||
void
|
||||
MMul::collectRangeInfoPreTrunc()
|
||||
{
|
||||
Range lhsRange(lhs());
|
||||
Range rhsRange(rhs());
|
||||
|
||||
// If lhsRange contains only positive then we can skip negative zero check.
|
||||
if (lhsRange.isFiniteNonNegative() && !lhsRange.canBeZero())
|
||||
setCanBeNegativeZero(false);
|
||||
|
||||
// Likewise rhsRange.
|
||||
if (rhsRange.isFiniteNonNegative() && !rhsRange.canBeZero())
|
||||
setCanBeNegativeZero(false);
|
||||
|
||||
// If rhsRange and lhsRange contain Non-negative integers only,
|
||||
// We skip negative zero check.
|
||||
if (rhsRange.isFiniteNonNegative() && lhsRange.isFiniteNonNegative())
|
||||
setCanBeNegativeZero(false);
|
||||
|
||||
//If rhsRange and lhsRange < 0. Then we skip negative zero check.
|
||||
if (rhsRange.isFiniteNegative() && lhsRange.isFiniteNegative())
|
||||
setCanBeNegativeZero(false);
|
||||
}
|
||||
|
||||
void
|
||||
MMod::collectRangeInfoPreTrunc()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user