Index: src/crankshaft/arm64/lithium-arm64.cc |
diff --git a/src/crankshaft/arm64/lithium-arm64.cc b/src/crankshaft/arm64/lithium-arm64.cc |
index d00bc17d4734f77ee822de10c8f66e4d4c0729a7..e18fca528b165e8aee6bc5ad224d53a76f6a59e7 100644 |
--- a/src/crankshaft/arm64/lithium-arm64.cc |
+++ b/src/crankshaft/arm64/lithium-arm64.cc |
@@ -2462,14 +2462,9 @@ LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) { |
case kMathExp: { |
DCHECK(instr->representation().IsDouble()); |
DCHECK(instr->value()->representation().IsDouble()); |
- LOperand* input = UseRegister(instr->value()); |
- LOperand* double_temp1 = TempDoubleRegister(); |
- LOperand* temp1 = TempRegister(); |
- LOperand* temp2 = TempRegister(); |
- LOperand* temp3 = TempRegister(); |
- LMathExp* result = new(zone()) LMathExp(input, double_temp1, |
- temp1, temp2, temp3); |
- return DefineAsRegister(result); |
+ LOperand* input = UseFixedDouble(instr->value(), d0); |
+ LMathExp* result = new (zone()) LMathExp(input); |
+ return MarkAsCall(DefineFixedDouble(result, d0), instr); |
} |
case kMathFloor: { |
DCHECK(instr->value()->representation().IsDouble()); |