Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index d8f57216d2221b3142b15e3631b7644576791872..addac8186dda20e5a4c6bbc4d2e9e46cf7209b49 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -1637,13 +1637,13 @@ void LCodeGen::DoFlooringDivByPowerOf2I(LFlooringDivByPowerOf2I* instr) { |
if (instr->hydrogen()->CheckFlag(HValue::kBailoutOnMinusZero)) { |
DeoptimizeIf(zero, instr->environment()); |
} |
- if (instr->hydrogen()->left()->RangeCanInclude(kMinInt)) { |
+ if (instr->hydrogen()->CheckFlag(HValue::kLeftCanBeMinInt)) { |
// Note that we could emit branch-free code, but that would need one more |
// register. |
- __ j(no_overflow, ¬_kmin_int, Label::kNear); |
if (divisor == -1) { |
- DeoptimizeIf(no_condition, instr->environment()); |
+ DeoptimizeIf(overflow, instr->environment()); |
} else { |
+ __ j(no_overflow, ¬_kmin_int, Label::kNear); |
__ mov(dividend, Immediate(kMinInt / divisor)); |
__ jmp(&done, Label::kNear); |
} |