Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 746d02eda20c872a7be07330144e31dd4d44b998..d8a218106893cba7a3ca978e1508853033710afc 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -2682,7 +2682,9 @@ void LCodeGen::DoMathAbs(LUnaryMathOperation* instr) { |
Register input_reg = ToRegister(instr->InputAt(0)); |
// Smi check. |
__ JumpIfNotSmi(input_reg, deferred->entry()); |
+ __ SmiToInteger32(input_reg, input_reg); |
EmitIntegerMathAbs(instr); |
+ __ Integer32ToSmi(input_reg, input_reg); |
__ bind(deferred->exit()); |
} |
} |