| 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);
|
|
|