Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 974bcccb11646d8ec8a0ea4db4494a5b374802fe..a92604ecbf0e37040c0e526f1302bd655e6e2f82 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -1746,8 +1746,10 @@ void LCodeGen::DoShiftI(LShiftI* instr) { |
instr->can_deopt()) { |
if (shift_count != 1) { |
__ mov(result, Operand(left, LSL, shift_count - 1)); |
+ __ SmiTag(result, result, SetCC); |
+ } else { |
+ __ SmiTag(result, left, SetCC); |
} |
- __ SmiTag(result, result, SetCC); |
DeoptimizeIf(vs, instr->environment()); |
} else { |
__ mov(result, Operand(left, LSL, shift_count)); |