Index: src/x64/lithium-codegen-x64.cc |
=================================================================== |
--- src/x64/lithium-codegen-x64.cc (revision 16112) |
+++ src/x64/lithium-codegen-x64.cc (working copy) |
@@ -3449,7 +3449,7 @@ |
} |
-void LCodeGen::EmitInteger64MathAbs(LMathAbs* instr) { |
+void LCodeGen::EmitSmiMathAbs(LMathAbs* instr) { |
Register input_reg = ToRegister(instr->value()); |
__ testq(input_reg, input_reg); |
Label is_positive; |
@@ -3486,16 +3486,14 @@ |
} else if (r.IsInteger32()) { |
EmitIntegerMathAbs(instr); |
} else if (r.IsSmi()) { |
- EmitInteger64MathAbs(instr); |
+ EmitSmiMathAbs(instr); |
} else { // Tagged case. |
DeferredMathAbsTaggedHeapNumber* deferred = |
new(zone()) DeferredMathAbsTaggedHeapNumber(this, instr); |
Register input_reg = ToRegister(instr->value()); |
// Smi check. |
__ JumpIfNotSmi(input_reg, deferred->entry()); |
- __ SmiToInteger32(input_reg, input_reg); |
- EmitIntegerMathAbs(instr); |
- __ Integer32ToSmi(input_reg, input_reg); |
+ EmitSmiMathAbs(instr); |
__ bind(deferred->exit()); |
} |
} |