| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index 364c3a1824ef671ee44dcd8f984d4be0363da993..ffe1ae8cadb819ec5e8489deb228b5f81e18ad83 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -1453,7 +1453,11 @@ void LCodeGen::DoShiftI(LShiftI* instr) {
|
| break;
|
| case Token::SHL:
|
| if (shift_count != 0) {
|
| - __ shll(ToRegister(left), Immediate(shift_count));
|
| + if (instr->hydrogen_value()->representation().IsSmi()) {
|
| + __ shl(ToRegister(left), Immediate(shift_count));
|
| + } else {
|
| + __ shll(ToRegister(left), Immediate(shift_count));
|
| + }
|
| }
|
| break;
|
| default:
|
|
|