Index: src/ia32/code-stubs-ia32.cc |
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc |
index 715feca05d62fba99e9a168372b59eba25dfc5ea..8ce5fdd78bff6d89dbfc51e82e01ebf7b2c32d9e 100644 |
--- a/src/ia32/code-stubs-ia32.cc |
+++ b/src/ia32/code-stubs-ia32.cc |
@@ -2952,18 +2952,11 @@ bool CEntryStub::NeedsImmovableCode() { |
} |
-bool CEntryStub::IsPregenerated(Isolate* isolate) { |
- return (!save_doubles_ || isolate->fp_stubs_generated()) && |
- result_size_ == 1; |
-} |
- |
- |
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); |
if (Serializer::enabled()) { |
@@ -5287,69 +5280,6 @@ void NameDictionaryLookupStub::Generate(MacroAssembler* masm) { |
} |
-struct AheadOfTimeWriteBarrierStubList { |
- Register object, value, address; |
- RememberedSetAction action; |
-}; |
- |
- |
-#define REG(Name) { kRegister_ ## Name ## _Code } |
- |
-static const AheadOfTimeWriteBarrierStubList kAheadOfTime[] = { |
- // Used in RegExpExecStub. |
- { REG(ebx), REG(eax), REG(edi), EMIT_REMEMBERED_SET }, |
- // Used in CompileArrayPushCall. |
- { REG(ebx), REG(ecx), REG(edx), EMIT_REMEMBERED_SET }, |
- { REG(ebx), REG(edi), REG(edx), OMIT_REMEMBERED_SET }, |
- // Used in StoreStubCompiler::CompileStoreField and |
- // KeyedStoreStubCompiler::CompileStoreField via GenerateStoreField. |
- { REG(edx), REG(ecx), REG(ebx), EMIT_REMEMBERED_SET }, |
- // GenerateStoreField calls the stub with two different permutations of |
- // registers. This is the second. |
- { REG(ebx), REG(ecx), REG(edx), EMIT_REMEMBERED_SET }, |
- // StoreIC::GenerateNormal via GenerateDictionaryStore |
- { REG(ebx), REG(edi), REG(edx), EMIT_REMEMBERED_SET }, |
- // KeyedStoreIC::GenerateGeneric. |
- { REG(ebx), REG(edx), REG(ecx), EMIT_REMEMBERED_SET}, |
- // KeyedStoreStubCompiler::GenerateStoreFastElement. |
- { REG(edi), REG(ebx), REG(ecx), EMIT_REMEMBERED_SET}, |
- { REG(edx), REG(edi), REG(ebx), EMIT_REMEMBERED_SET}, |
- // ElementsTransitionGenerator::GenerateMapChangeElementTransition |
- // and ElementsTransitionGenerator::GenerateSmiToDouble |
- // and ElementsTransitionGenerator::GenerateDoubleToObject |
- { REG(edx), REG(ebx), REG(edi), EMIT_REMEMBERED_SET}, |
- { REG(edx), REG(ebx), REG(edi), OMIT_REMEMBERED_SET}, |
- // ElementsTransitionGenerator::GenerateDoubleToObject |
- { REG(eax), REG(edx), REG(esi), EMIT_REMEMBERED_SET}, |
- { REG(edx), REG(eax), REG(edi), EMIT_REMEMBERED_SET}, |
- // StoreArrayLiteralElementStub::Generate |
- { REG(ebx), REG(eax), REG(ecx), EMIT_REMEMBERED_SET}, |
- // FastNewClosureStub and StringAddStub::Generate |
- { REG(ecx), REG(edx), REG(ebx), EMIT_REMEMBERED_SET}, |
- // StringAddStub::Generate |
- { REG(ecx), REG(eax), REG(ebx), 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 (const 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 stub(kDontSaveFPRegs); |
@@ -5361,20 +5291,6 @@ void StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime( |
} |
-void RecordWriteStub::GenerateFixedRegStubsAheadOfTime(Isolate* isolate) { |
- for (const 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 CpuFeatures::IsSupported(SSE2); |
} |
@@ -5703,10 +5619,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); |
} |