Index: src/compiler/x64/code-generator-x64.cc |
diff --git a/src/compiler/x64/code-generator-x64.cc b/src/compiler/x64/code-generator-x64.cc |
index 28aacfe2c463d59e578dd4d91259fb352ab1ac84..9ed183a391668cc076f9c03a4e56e2257daa02c9 100644 |
--- a/src/compiler/x64/code-generator-x64.cc |
+++ b/src/compiler/x64/code-generator-x64.cc |
@@ -840,6 +840,10 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
__ leaq(i.OutputRegister(), Operand(base, offset.offset())); |
break; |
} |
+ case kIeee754Float64Log: |
+ __ PrepareCallCFunction(1); |
+ __ CallCFunction(ExternalReference::ieee754_log_function(isolate()), 1); |
+ break; |
case kX64Add32: |
ASSEMBLE_BINOP(addl); |
break; |
@@ -1008,16 +1012,6 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
__ Popcntl(i.OutputRegister(), i.InputOperand(0)); |
} |
break; |
- case kX87Float64Log: |
- __ subq(rsp, Immediate(kDoubleSize)); |
- __ Movsd(Operand(rsp, 0), i.InputDoubleRegister(0)); |
- __ fldln2(); |
- __ fld_d(Operand(rsp, 0)); |
- __ fyl2x(); |
- __ fstp_d(Operand(rsp, 0)); |
- __ Movsd(i.OutputDoubleRegister(), Operand(rsp, 0)); |
- __ addq(rsp, Immediate(kDoubleSize)); |
- break; |
case kSSEFloat32Cmp: |
ASSEMBLE_SSE_BINOP(Ucomiss); |
break; |