Index: src/x64/code-stubs-x64.cc |
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
index 4fb3a70b7cb58c9119a4088e945a4ecd6c6c50a7..fbc2f111c154efc6dbb42fda234733d44c30dbe9 100644 |
--- a/src/x64/code-stubs-x64.cc |
+++ b/src/x64/code-stubs-x64.cc |
@@ -2781,21 +2781,11 @@ bool CEntryStub::NeedsImmovableCode() { |
} |
-bool CEntryStub::IsPregenerated(Isolate* isolate) { |
-#ifdef _WIN64 |
- return result_size_ == 1; |
-#else |
- return true; |
-#endif |
-} |
- |
- |
void CodeStub::GenerateStubsAheadOfTime(Isolate* isolate) { |
CEntryStub::GenerateAheadOfTime(isolate); |
StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate); |
StubFailureTrampolineStub::GenerateAheadOfTime(isolate); |
// It is important that the store buffer overflow stubs are generated first. |
- RecordWriteStub::GenerateFixedRegStubsAheadOfTime(isolate); |
ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); |
CreateAllocationSiteStub::GenerateAheadOfTime(isolate); |
BinaryOpStub::GenerateAheadOfTime(isolate); |
@@ -5085,71 +5075,6 @@ void NameDictionaryLookupStub::Generate(MacroAssembler* masm) { |
} |
-struct AheadOfTimeWriteBarrierStubList { |
- Register object, value, address; |
- RememberedSetAction action; |
-}; |
- |
- |
-#define REG(Name) { kRegister_ ## Name ## _Code } |
- |
-struct AheadOfTimeWriteBarrierStubList kAheadOfTime[] = { |
- // Used in RegExpExecStub. |
- { REG(rbx), REG(rax), REG(rdi), EMIT_REMEMBERED_SET }, |
- // Used in CompileArrayPushCall. |
- { REG(rbx), REG(rcx), REG(rdx), EMIT_REMEMBERED_SET }, |
- // Used in StoreStubCompiler::CompileStoreField and |
- // KeyedStoreStubCompiler::CompileStoreField via GenerateStoreField. |
- { REG(rdx), REG(rcx), REG(rbx), EMIT_REMEMBERED_SET }, |
- // GenerateStoreField calls the stub with two different permutations of |
- // registers. This is the second. |
- { REG(rbx), REG(rcx), REG(rdx), EMIT_REMEMBERED_SET }, |
- // StoreIC::GenerateNormal via GenerateDictionaryStore. |
- { REG(rbx), REG(r8), REG(r9), EMIT_REMEMBERED_SET }, |
- // KeyedStoreIC::GenerateGeneric. |
- { REG(rbx), REG(rdx), REG(rcx), EMIT_REMEMBERED_SET}, |
- // KeyedStoreStubCompiler::GenerateStoreFastElement. |
- { REG(rdi), REG(rbx), REG(rcx), EMIT_REMEMBERED_SET}, |
- { REG(rdx), REG(rdi), REG(rbx), EMIT_REMEMBERED_SET}, |
- // ElementsTransitionGenerator::GenerateMapChangeElementTransition |
- // and ElementsTransitionGenerator::GenerateSmiToDouble |
- // and ElementsTransitionGenerator::GenerateDoubleToObject |
- { REG(rdx), REG(rbx), REG(rdi), EMIT_REMEMBERED_SET}, |
- { REG(rdx), REG(rbx), REG(rdi), OMIT_REMEMBERED_SET}, |
- // ElementsTransitionGenerator::GenerateSmiToDouble |
- // and ElementsTransitionGenerator::GenerateDoubleToObject |
- { REG(rdx), REG(r11), REG(r15), EMIT_REMEMBERED_SET}, |
- // ElementsTransitionGenerator::GenerateDoubleToObject |
- { REG(r11), REG(rax), REG(r15), EMIT_REMEMBERED_SET}, |
- // StoreArrayLiteralElementStub::Generate |
- { REG(rbx), REG(rax), REG(rcx), EMIT_REMEMBERED_SET}, |
- // FastNewClosureStub::Generate and |
- // StringAddStub::Generate |
- { REG(rcx), REG(rdx), REG(rbx), EMIT_REMEMBERED_SET}, |
- // StringAddStub::Generate |
- { REG(rcx), REG(rax), REG(rbx), EMIT_REMEMBERED_SET}, |
- // Null termination. |
- { REG(no_reg), REG(no_reg), REG(no_reg), EMIT_REMEMBERED_SET} |
-}; |
- |
-#undef REG |
- |
-bool RecordWriteStub::IsPregenerated(Isolate* isolate) { |
- for (AheadOfTimeWriteBarrierStubList* entry = kAheadOfTime; |
- !entry->object.is(no_reg); |
- entry++) { |
- if (object_.is(entry->object) && |
- value_.is(entry->value) && |
- address_.is(entry->address) && |
- remembered_set_action_ == entry->action && |
- save_fp_regs_mode_ == kDontSaveFPRegs) { |
- return true; |
- } |
- } |
- return false; |
-} |
- |
- |
void StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime( |
Isolate* isolate) { |
StoreBufferOverflowStub stub1(kDontSaveFPRegs); |
@@ -5159,20 +5084,6 @@ void StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime( |
} |
-void RecordWriteStub::GenerateFixedRegStubsAheadOfTime(Isolate* isolate) { |
- for (AheadOfTimeWriteBarrierStubList* entry = kAheadOfTime; |
- !entry->object.is(no_reg); |
- entry++) { |
- RecordWriteStub stub(entry->object, |
- entry->value, |
- entry->address, |
- entry->action, |
- kDontSaveFPRegs); |
- stub.GetCode(isolate)->set_is_pregenerated(true); |
- } |
-} |
- |
- |
bool CodeStub::CanUseFPRegisters() { |
return true; // Always have SSE2 on x64. |
} |
@@ -5496,10 +5407,6 @@ void StubFailureTailCallTrampolineStub::Generate(MacroAssembler* masm) { |
void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) { |
if (masm->isolate()->function_entry_hook() != NULL) { |
- // It's always safe to call the entry hook stub, as the hook itself |
- // is not allowed to call back to V8. |
- AllowStubCallsScope allow_stub_calls(masm, true); |
- |
ProfileEntryHookStub stub; |
masm->CallStub(&stub); |
} |