| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index bf59159164c53b4e41ae52ee2d48d76625017a1b..c36388ee6abd359898fe1f57134b8e9f19311d81 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/src/hydrogen-instructions.h
|
| @@ -4890,7 +4890,11 @@ class HShl: public HBitwiseBinaryOperation {
|
| virtual void UpdateRepresentation(Representation new_rep,
|
| HInferRepresentationPhase* h_infer,
|
| const char* reason) {
|
| - if (new_rep.IsSmi()) new_rep = Representation::Integer32();
|
| + if (new_rep.IsSmi() &&
|
| + !(right()->IsInteger32Constant() &&
|
| + right()->GetInteger32Constant() >= 0)) {
|
| + new_rep = Representation::Integer32();
|
| + }
|
| HBitwiseBinaryOperation::UpdateRepresentation(new_rep, h_infer, reason);
|
| }
|
|
|
|
|