| Index: src/hydrogen-instructions.cc | 
| diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc | 
| index 2d4b82bf16ba1efe84bbc0915111921069ad9384..fceed3c5078494751ab7392c940c1004086c7fb3 100644 | 
| --- a/src/hydrogen-instructions.cc | 
| +++ b/src/hydrogen-instructions.cc | 
| @@ -2744,11 +2744,9 @@ bool HStoreKeyed::NeedsCanonicalization() { | 
|  | 
|  | 
| #define H_CONSTANT_INT32(val)                                                  \ | 
| -new(zone) HConstant(FACTORY->NewNumberFromInt(val, TENURED),                   \ | 
| -                    Representation::Integer32()) | 
| +new(zone) HConstant(val, Representation::Integer32()) | 
| #define H_CONSTANT_DOUBLE(val)                                                 \ | 
| -new(zone) HConstant(FACTORY->NewNumber(val, TENURED),                          \ | 
| -                    Representation::Double()) | 
| +new(zone) HConstant(val, Representation::Double()) | 
|  | 
| #define DEFINE_NEW_H_SIMPLE_ARITHMETIC_INSTR(HInstr, op)                       \ | 
| HInstruction* HInstr::New##HInstr(Zone* zone,                                  \ | 
| @@ -2893,7 +2891,8 @@ HInstruction* HShr::NewHShr(Zone* zone, | 
| return H_CONSTANT_DOUBLE( | 
| static_cast<double>(static_cast<uint32_t>(left_val))); | 
| } | 
| -      return H_CONSTANT_INT32(static_cast<uint32_t>(left_val) >> right_val); | 
| +      return H_CONSTANT_INT32(static_cast<int32_t>( | 
| +          static_cast<uint32_t>(left_val) >> right_val)); | 
| } | 
| } | 
| return new(zone) HShr(context, left, right); | 
|  |