| Index: src/crankshaft/arm64/lithium-arm64.cc
|
| diff --git a/src/crankshaft/arm64/lithium-arm64.cc b/src/crankshaft/arm64/lithium-arm64.cc
|
| index e18fca528b165e8aee6bc5ad224d53a76f6a59e7..d00bc17d4734f77ee822de10c8f66e4d4c0729a7 100644
|
| --- a/src/crankshaft/arm64/lithium-arm64.cc
|
| +++ b/src/crankshaft/arm64/lithium-arm64.cc
|
| @@ -2462,9 +2462,14 @@
|
| case kMathExp: {
|
| DCHECK(instr->representation().IsDouble());
|
| DCHECK(instr->value()->representation().IsDouble());
|
| - LOperand* input = UseFixedDouble(instr->value(), d0);
|
| - LMathExp* result = new (zone()) LMathExp(input);
|
| - return MarkAsCall(DefineFixedDouble(result, d0), instr);
|
| + 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);
|
| }
|
| case kMathFloor: {
|
| DCHECK(instr->value()->representation().IsDouble());
|
|
|