Index: src/ic/ic-compiler.cc |
diff --git a/src/ic/ic-compiler.cc b/src/ic/ic-compiler.cc |
index 9f1d87ac617247a7a63cde08804ba119b68f1035..dbdb59589c134d2b380d00bcb257c95b33071101 100644 |
--- a/src/ic/ic-compiler.cc |
+++ b/src/ic/ic-compiler.cc |
@@ -13,26 +13,6 @@ namespace v8 { |
namespace internal { |
-Handle<Code> PropertyICCompiler::Find(Handle<Name> name, |
- Handle<Map> stub_holder, Code::Kind kind, |
- ExtraICState extra_state, |
- CacheHolderFlag cache_holder) { |
- Code::Flags flags = |
- Code::ComputeMonomorphicFlags(kind, extra_state, cache_holder); |
- Object* probe = stub_holder->FindInCodeCache(*name, flags); |
- if (probe->IsCode()) return handle(Code::cast(probe)); |
- return Handle<Code>::null(); |
-} |
- |
- |
-bool PropertyICCompiler::IncludesNumberMap(MapHandleList* maps) { |
- for (int i = 0; i < maps->length(); ++i) { |
- if (maps->at(i)->instance_type() == HEAP_NUMBER_TYPE) return true; |
- } |
- return false; |
-} |
- |
- |
Handle<Code> PropertyICCompiler::ComputeKeyedLoadMonomorphicHandler( |
Handle<Map> receiver_map, ExtraICState extra_ic_state) { |
Isolate* isolate = receiver_map->GetIsolate(); |
@@ -83,20 +63,6 @@ Handle<Code> PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler( |
} |
-Code* PropertyICCompiler::FindPreMonomorphic(Isolate* isolate, Code::Kind kind, |
- ExtraICState state) { |
- Code::Flags flags = Code::ComputeFlags(kind, PREMONOMORPHIC, state); |
- UnseededNumberDictionary* dictionary = |
- isolate->heap()->non_monomorphic_cache(); |
- int entry = dictionary->FindEntry(isolate, flags); |
- DCHECK(entry != -1); |
- Object* code = dictionary->ValueAt(entry); |
- // This might be called during the marking phase of the collector |
- // hence the unchecked cast. |
- return reinterpret_cast<Code*>(code); |
-} |
- |
- |
static void FillCache(Isolate* isolate, Handle<Code> code) { |
Handle<UnseededNumberDictionary> dictionary = UnseededNumberDictionary::Set( |
isolate->factory()->non_monomorphic_cache(), code->flags(), code); |
@@ -107,6 +73,7 @@ static void FillCache(Isolate* isolate, Handle<Code> code) { |
Handle<Code> PropertyICCompiler::ComputeStore(Isolate* isolate, |
InlineCacheState ic_state, |
ExtraICState extra_state) { |
+ DCHECK_EQ(MEGAMORPHIC, ic_state); |
Code::Flags flags = Code::ComputeFlags(Code::STORE_IC, ic_state, extra_state); |
Handle<UnseededNumberDictionary> cache = |
isolate->factory()->non_monomorphic_cache(); |
@@ -114,18 +81,7 @@ Handle<Code> PropertyICCompiler::ComputeStore(Isolate* isolate, |
if (entry != -1) return Handle<Code>(Code::cast(cache->ValueAt(entry))); |
PropertyICCompiler compiler(isolate, Code::STORE_IC); |
- Handle<Code> code; |
- if (ic_state == UNINITIALIZED) { |
- code = compiler.CompileStoreInitialize(flags); |
- } else if (ic_state == PREMONOMORPHIC) { |
- code = compiler.CompileStorePreMonomorphic(flags); |
- } else if (ic_state == GENERIC) { |
- code = compiler.CompileStoreGeneric(flags); |
- } else if (ic_state == MEGAMORPHIC) { |
- code = compiler.CompileStoreMegamorphic(flags); |
- } else { |
- UNREACHABLE(); |
- } |
+ Handle<Code> code = compiler.CompileStoreMegamorphic(flags); |
FillCache(isolate, code); |
return code; |
@@ -149,44 +105,6 @@ void PropertyICCompiler::ComputeKeyedStorePolymorphicHandlers( |
} |
-Handle<Code> PropertyICCompiler::CompileLoadInitialize(Code::Flags flags) { |
- LoadIC::GenerateInitialize(masm()); |
- Handle<Code> code = GetCodeWithFlags(flags, "CompileLoadInitialize"); |
- PROFILE(isolate(), CodeCreateEvent(Logger::LOAD_INITIALIZE_TAG, |
- AbstractCode::cast(*code), 0)); |
- return code; |
-} |
- |
- |
-Handle<Code> PropertyICCompiler::CompileStoreInitialize(Code::Flags flags) { |
- StoreIC::GenerateInitialize(masm()); |
- Handle<Code> code = GetCodeWithFlags(flags, "CompileStoreInitialize"); |
- PROFILE(isolate(), CodeCreateEvent(Logger::STORE_INITIALIZE_TAG, |
- AbstractCode::cast(*code), 0)); |
- return code; |
-} |
- |
- |
-Handle<Code> PropertyICCompiler::CompileStorePreMonomorphic(Code::Flags flags) { |
- StoreIC::GeneratePreMonomorphic(masm()); |
- Handle<Code> code = GetCodeWithFlags(flags, "CompileStorePreMonomorphic"); |
- PROFILE(isolate(), CodeCreateEvent(Logger::STORE_PREMONOMORPHIC_TAG, |
- AbstractCode::cast(*code), 0)); |
- return code; |
-} |
- |
- |
-Handle<Code> PropertyICCompiler::CompileStoreGeneric(Code::Flags flags) { |
- ExtraICState extra_state = Code::ExtractExtraICStateFromFlags(flags); |
- LanguageMode language_mode = StoreICState::GetLanguageMode(extra_state); |
- GenerateRuntimeSetProperty(masm(), language_mode); |
- Handle<Code> code = GetCodeWithFlags(flags, "CompileStoreGeneric"); |
- PROFILE(isolate(), CodeCreateEvent(Logger::STORE_GENERIC_TAG, |
- AbstractCode::cast(*code), 0)); |
- return code; |
-} |
- |
- |
Handle<Code> PropertyICCompiler::CompileStoreMegamorphic(Code::Flags flags) { |
StoreIC::GenerateMegamorphic(masm()); |
Handle<Code> code = GetCodeWithFlags(flags, "CompileStoreMegamorphic"); |
@@ -195,12 +113,10 @@ Handle<Code> PropertyICCompiler::CompileStoreMegamorphic(Code::Flags flags) { |
return code; |
} |
- |
-Handle<Code> PropertyICCompiler::GetCode(Code::Kind kind, Code::StubType type, |
- Handle<Name> name, |
+Handle<Code> PropertyICCompiler::GetCode(Code::Kind kind, Handle<Name> name, |
InlineCacheState state) { |
Code::Flags flags = |
- Code::ComputeFlags(kind, state, extra_ic_state_, type, cache_holder()); |
+ Code::ComputeFlags(kind, state, extra_ic_state_, cache_holder()); |
Handle<Code> code = GetCodeWithFlags(flags, name); |
PROFILE(isolate(), |
CodeCreateEvent(log_kind(code), AbstractCode::cast(*code), *name)); |
@@ -277,22 +193,6 @@ Handle<Code> PropertyICCompiler::CompileKeyedStoreMonomorphicHandler( |
} |
-Handle<Code> PropertyICCompiler::CompileKeyedStoreMonomorphic( |
- Handle<Map> receiver_map, KeyedAccessStoreMode store_mode) { |
- Handle<Code> stub = |
- CompileKeyedStoreMonomorphicHandler(receiver_map, store_mode); |
- |
- Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map); |
- |
- __ DispatchWeakMap(receiver(), scratch1(), scratch2(), cell, stub, |
- DO_SMI_CHECK); |
- |
- TailCallBuiltin(masm(), Builtins::kKeyedStoreIC_Miss); |
- |
- return GetCode(kind(), Code::NORMAL, factory()->empty_string()); |
-} |
- |
- |
#undef __ |
} // namespace internal |
} // namespace v8 |