Index: src/mips/code-stubs-mips.cc |
diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc |
index 0c5e35caecfabfcb07e57cd1af220f3409c724f5..bd421616307abfd46977664f67eeb0c708f61f5f 100644 |
--- a/src/mips/code-stubs-mips.cc |
+++ b/src/mips/code-stubs-mips.cc |
@@ -714,27 +714,6 @@ void DoubleToIStub::Generate(MacroAssembler* masm) { |
} |
-bool WriteInt32ToHeapNumberStub::IsPregenerated(Isolate* isolate) { |
- // These variants are compiled ahead of time. See next method. |
- if (the_int_.is(a1) && |
- the_heap_number_.is(v0) && |
- scratch_.is(a2) && |
- sign_.is(a3)) { |
- return true; |
- } |
- if (the_int_.is(a2) && |
- the_heap_number_.is(v0) && |
- scratch_.is(a3) && |
- sign_.is(a0)) { |
- return true; |
- } |
- // Other register combinations are generated as and when they are needed, |
- // so it is unsafe to call them from stubs (we can't generate a stub while |
- // we are generating a stub). |
- return false; |
-} |
- |
- |
void WriteInt32ToHeapNumberStub::GenerateFixedRegStubsAheadOfTime( |
Isolate* isolate) { |
WriteInt32ToHeapNumberStub stub1(a1, v0, a2, a3); |
@@ -1749,18 +1728,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); |
WriteInt32ToHeapNumberStub::GenerateFixedRegStubsAheadOfTime(isolate); |
StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate); |
StubFailureTrampolineStub::GenerateAheadOfTime(isolate); |
- RecordWriteStub::GenerateFixedRegStubsAheadOfTime(isolate); |
ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); |
CreateAllocationSiteStub::GenerateAheadOfTime(isolate); |
BinaryOpStub::GenerateAheadOfTime(isolate); |
@@ -5506,68 +5478,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(s2), REG(s0), REG(t3), EMIT_REMEMBERED_SET }, |
- // Used in CompileArrayPushCall. |
- // Also used in StoreIC::GenerateNormal via GenerateDictionaryStore. |
- // Also used in KeyedStoreIC::GenerateGeneric. |
- { REG(a3), REG(t0), REG(t1), EMIT_REMEMBERED_SET }, |
- // Used in StoreStubCompiler::CompileStoreField via GenerateStoreField. |
- { REG(a1), REG(a2), REG(a3), EMIT_REMEMBERED_SET }, |
- { REG(a3), REG(a2), REG(a1), EMIT_REMEMBERED_SET }, |
- // Used in KeyedStoreStubCompiler::CompileStoreField via GenerateStoreField. |
- { REG(a2), REG(a1), REG(a3), EMIT_REMEMBERED_SET }, |
- { REG(a3), REG(a1), REG(a2), EMIT_REMEMBERED_SET }, |
- // KeyedStoreStubCompiler::GenerateStoreFastElement. |
- { REG(a3), REG(a2), REG(t0), EMIT_REMEMBERED_SET }, |
- { REG(a2), REG(a3), REG(t0), EMIT_REMEMBERED_SET }, |
- // ElementsTransitionGenerator::GenerateMapChangeElementTransition |
- // and ElementsTransitionGenerator::GenerateSmiToDouble |
- // and ElementsTransitionGenerator::GenerateDoubleToObject |
- { REG(a2), REG(a3), REG(t5), EMIT_REMEMBERED_SET }, |
- { REG(a2), REG(a3), REG(t5), OMIT_REMEMBERED_SET }, |
- // ElementsTransitionGenerator::GenerateDoubleToObject |
- { REG(t2), REG(a2), REG(a0), EMIT_REMEMBERED_SET }, |
- { REG(a2), REG(t2), REG(t5), EMIT_REMEMBERED_SET }, |
- // StoreArrayLiteralElementStub::Generate |
- { REG(t1), REG(a0), REG(t2), EMIT_REMEMBERED_SET }, |
- // FastNewClosureStub::Generate |
- { REG(a2), REG(t0), REG(a1), EMIT_REMEMBERED_SET }, |
- // StringAddStub::Generate |
- { REG(t3), REG(a1), REG(t0), EMIT_REMEMBERED_SET }, |
- { REG(t3), REG(a0), REG(t0), 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 stub1(kDontSaveFPRegs); |
@@ -5578,20 +5488,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 true; // FPU is a base requirement for V8. |
} |
@@ -5898,7 +5794,6 @@ void StubFailureTailCallTrampolineStub::Generate(MacroAssembler* masm) { |
void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) { |
if (masm->isolate()->function_entry_hook() != NULL) { |
- AllowStubCallsScope allow_stub_calls(masm, true); |
ProfileEntryHookStub stub; |
__ push(ra); |
__ CallStub(&stub); |