Index: src/crankshaft/mips64/lithium-mips64.cc |
diff --git a/src/crankshaft/mips64/lithium-mips64.cc b/src/crankshaft/mips64/lithium-mips64.cc |
index f001ee487af9fe743034631bf1af49514d18c6a7..17f59d84fccff7dfc499b963435e33416a0bc452 100644 |
--- a/src/crankshaft/mips64/lithium-mips64.cc |
+++ b/src/crankshaft/mips64/lithium-mips64.cc |
@@ -1107,8 +1107,12 @@ |
LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) { |
DCHECK(instr->representation().IsDouble()); |
DCHECK(instr->value()->representation().IsDouble()); |
- LOperand* input = UseFixedDouble(instr->value(), f4); |
- return MarkAsCall(DefineFixedDouble(new (zone()) LMathExp(input), f4), instr); |
+ LOperand* input = UseRegister(instr->value()); |
+ LOperand* temp1 = TempRegister(); |
+ LOperand* temp2 = TempRegister(); |
+ LOperand* double_temp = TempDoubleRegister(); |
+ LMathExp* result = new(zone()) LMathExp(input, double_temp, temp1, temp2); |
+ return DefineAsRegister(result); |
} |