| Index: src/crankshaft/ia32/lithium-codegen-ia32.cc | 
| diff --git a/src/crankshaft/ia32/lithium-codegen-ia32.cc b/src/crankshaft/ia32/lithium-codegen-ia32.cc | 
| index 48a7f3f13558bb0cc33b1c19afdd4389f2121bca..cdd96a0826f6f28ea989c42278113b1614c92372 100644 | 
| --- a/src/crankshaft/ia32/lithium-codegen-ia32.cc | 
| +++ b/src/crankshaft/ia32/lithium-codegen-ia32.cc | 
| @@ -3425,16 +3425,11 @@ | 
| void LCodeGen::DoMathExp(LMathExp* instr) { | 
| XMMRegister input = ToDoubleRegister(instr->value()); | 
| XMMRegister result = ToDoubleRegister(instr->result()); | 
| -  // Pass one double as argument on the stack. | 
| -  __ PrepareCallCFunction(2, eax); | 
| -  __ movsd(Operand(esp, 0 * kDoubleSize), input); | 
| -  __ CallCFunction(ExternalReference::ieee754_exp_function(isolate()), 2); | 
| -  // Return value is in st(0) on ia32. | 
| -  // Store it into the result register. | 
| -  __ sub(esp, Immediate(kDoubleSize)); | 
| -  __ fstp_d(Operand(esp, 0)); | 
| -  __ movsd(result, Operand(esp, 0)); | 
| -  __ add(esp, Immediate(kDoubleSize)); | 
| +  XMMRegister temp0 = double_scratch0(); | 
| +  Register temp1 = ToRegister(instr->temp1()); | 
| +  Register temp2 = ToRegister(instr->temp2()); | 
| + | 
| +  MathExpGenerator::EmitMathExp(masm(), input, result, temp0, temp1, temp2); | 
| } | 
|  | 
| void LCodeGen::PrepareForTailCall(const ParameterCount& actual, | 
|  |