Index: src/x64/codegen-x64.cc |
diff --git a/src/x64/codegen-x64.cc b/src/x64/codegen-x64.cc |
index 6731e9eba86a5fe2e4826e9b21eba8249076fb9b..911f3cb64aa10d229629b8611a8a57974ffd79d8 100644 |
--- a/src/x64/codegen-x64.cc |
+++ b/src/x64/codegen-x64.cc |
@@ -32,38 +32,6 @@ void StubRuntimeCallHelper::AfterCall(MacroAssembler* masm) const { |
#define __ masm. |
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) { |
- size_t actual_size; |
- byte* buffer = |
- static_cast<byte*>(base::OS::Allocate(1 * KB, &actual_size, true)); |
- if (buffer == nullptr) return nullptr; |
- ExternalReference::InitializeMathExpData(); |
- |
- MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size), |
- CodeObjectRequired::kNo); |
- // xmm0: raw double input. |
- XMMRegister input = xmm0; |
- XMMRegister result = xmm1; |
- __ pushq(rax); |
- __ pushq(rbx); |
- |
- MathExpGenerator::EmitMathExp(&masm, input, result, xmm2, rax, rbx); |
- |
- __ popq(rbx); |
- __ popq(rax); |
- __ Movsd(xmm0, result); |
- __ Ret(); |
- |
- CodeDesc desc; |
- masm.GetCode(&desc); |
- DCHECK(!RelocInfo::RequiresRelocation(desc)); |
- |
- Assembler::FlushICache(isolate, buffer, actual_size); |
- base::OS::ProtectCode(buffer, actual_size); |
- return FUNCTION_CAST<UnaryMathFunctionWithIsolate>(buffer); |
-} |
- |
- |
UnaryMathFunctionWithIsolate CreateSqrtFunction(Isolate* isolate) { |
size_t actual_size; |
// Allocate buffer in executable space. |
@@ -499,59 +467,6 @@ void StringCharLoadGenerator::Generate(MacroAssembler* masm, |
__ bind(&done); |
} |
- |
-void MathExpGenerator::EmitMathExp(MacroAssembler* masm, |
- XMMRegister input, |
- XMMRegister result, |
- XMMRegister double_scratch, |
- Register temp1, |
- Register temp2) { |
- DCHECK(!input.is(result)); |
- DCHECK(!input.is(double_scratch)); |
- DCHECK(!result.is(double_scratch)); |
- DCHECK(!temp1.is(temp2)); |
- DCHECK(ExternalReference::math_exp_constants(0).address() != NULL); |
- DCHECK(!masm->serializer_enabled()); // External references not serializable. |
- |
- Label done; |
- |
- __ Move(kScratchRegister, ExternalReference::math_exp_constants(0)); |
- __ Movsd(double_scratch, Operand(kScratchRegister, 0 * kDoubleSize)); |
- __ Xorpd(result, result); |
- __ Ucomisd(double_scratch, input); |
- __ j(above_equal, &done); |
- __ Ucomisd(input, Operand(kScratchRegister, 1 * kDoubleSize)); |
- __ Movsd(result, Operand(kScratchRegister, 2 * kDoubleSize)); |
- __ j(above_equal, &done); |
- __ Movsd(double_scratch, Operand(kScratchRegister, 3 * kDoubleSize)); |
- __ Movsd(result, Operand(kScratchRegister, 4 * kDoubleSize)); |
- __ Mulsd(double_scratch, input); |
- __ Addsd(double_scratch, result); |
- __ Movq(temp2, double_scratch); |
- __ Subsd(double_scratch, result); |
- __ Movsd(result, Operand(kScratchRegister, 6 * kDoubleSize)); |
- __ leaq(temp1, Operand(temp2, 0x1ff800)); |
- __ andq(temp2, Immediate(0x7ff)); |
- __ shrq(temp1, Immediate(11)); |
- __ Mulsd(double_scratch, Operand(kScratchRegister, 5 * kDoubleSize)); |
- __ Move(kScratchRegister, ExternalReference::math_exp_log_table()); |
- __ shlq(temp1, Immediate(52)); |
- __ orq(temp1, Operand(kScratchRegister, temp2, times_8, 0)); |
- __ Move(kScratchRegister, ExternalReference::math_exp_constants(0)); |
- __ Subsd(double_scratch, input); |
- __ Movsd(input, double_scratch); |
- __ Subsd(result, double_scratch); |
- __ Mulsd(input, double_scratch); |
- __ Mulsd(result, input); |
- __ Movq(input, temp1); |
- __ Mulsd(result, Operand(kScratchRegister, 7 * kDoubleSize)); |
- __ Subsd(result, double_scratch); |
- __ Addsd(result, Operand(kScratchRegister, 8 * kDoubleSize)); |
- __ Mulsd(result, input); |
- |
- __ bind(&done); |
-} |
- |
#undef __ |