Index: src/mips/lithium-mips.cc |
diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc |
index 93acbab5f31f98246db6aade73c3e5cdfd12c3d5..68392a33e1d1d41c43adbd5aa09766e931afe1cc 100644 |
--- a/src/mips/lithium-mips.cc |
+++ b/src/mips/lithium-mips.cc |
@@ -1280,13 +1280,13 @@ LInstruction* LChunkBuilder::DoDiv(HDiv* instr) { |
LInstruction* LChunkBuilder::DoFlooringDivByPowerOf2I(HMathFloorOfDiv* instr) { |
LOperand* dividend = UseRegisterAtStart(instr->left()); |
int32_t divisor = instr->right()->GetInteger32Constant(); |
- LInstruction* result = |
- DefineSameAsFirst( |
- new(zone()) LFlooringDivByPowerOf2I(dividend, divisor)); |
- bool can_deopt = |
- (instr->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) || |
- (instr->left()->RangeCanInclude(kMinInt) && divisor == -1); |
- return can_deopt ? AssignEnvironment(result) : result; |
+ LInstruction* result = DefineAsRegister(new(zone()) LFlooringDivByPowerOf2I( |
+ dividend, divisor)); |
+ if ((instr->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) || |
+ (instr->CheckFlag(HValue::kLeftCanBeMinInt) && divisor == -1)) { |
+ result = AssignEnvironment(result); |
+ } |
+ return result; |
} |