Index: src/crankshaft/x64/lithium-x64.cc |
diff --git a/src/crankshaft/x64/lithium-x64.cc b/src/crankshaft/x64/lithium-x64.cc |
index 192c3beac9a37202fe3b20189ca3240a308155dd..22d8ac5b7733a2026fcca17acdacc8ffefb15e19 100644 |
--- a/src/crankshaft/x64/lithium-x64.cc |
+++ b/src/crankshaft/x64/lithium-x64.cc |
@@ -1171,9 +1171,11 @@ |
LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) { |
DCHECK(instr->representation().IsDouble()); |
DCHECK(instr->value()->representation().IsDouble()); |
- LOperand* input = UseFixedDouble(instr->value(), xmm0); |
- return MarkAsCall(DefineFixedDouble(new (zone()) LMathExp(input), xmm0), |
- instr); |
+ LOperand* value = UseTempRegister(instr->value()); |
+ LOperand* temp1 = TempRegister(); |
+ LOperand* temp2 = TempRegister(); |
+ LMathExp* result = new(zone()) LMathExp(value, temp1, temp2); |
+ return DefineAsRegister(result); |
} |