| Index: src/hydrogen-instructions.cc
|
| diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc
|
| index 1943cce372367efd65f79bbdf586058cece1bc03..4b1093e205b515219824ed9850fdf64370844bc5 100644
|
| --- a/src/hydrogen-instructions.cc
|
| +++ b/src/hydrogen-instructions.cc
|
| @@ -2328,14 +2328,11 @@ Range* HBitwise::InferRange(Zone* zone) {
|
| if (right_upper < 0) right_upper = ~right_upper;
|
| if (right_lower < 0) right_lower = ~right_lower;
|
|
|
| - // Find the highest used bit.
|
| - int high = static_cast<int>(log2(left_upper));
|
| - high = Max(high, static_cast<int>(log2(left_lower)));
|
| - high = Max(high, static_cast<int>(log2(right_upper)));
|
| - high = Max(high, static_cast<int>(log2(right_lower)));
|
| + int high = MostSignificantBit(
|
| + left_upper | left_lower | right_upper | right_lower);
|
|
|
| int64_t limit = 1;
|
| - limit <<= high + 1;
|
| + limit <<= high;
|
| int32_t min = (left()->range()->CanBeNegative() ||
|
| right()->range()->CanBeNegative())
|
| ? static_cast<int32_t>(-limit) : 0;
|
|
|