Index: src/ic/ic-compiler.cc |
diff --git a/src/ic/ic-compiler.cc b/src/ic/ic-compiler.cc |
index dbdb59589c134d2b380d00bcb257c95b33071101..3c2619d0e6dd45fc0a3c6d7ef25b1a7d8d8f4873 100644 |
--- a/src/ic/ic-compiler.cc |
+++ b/src/ic/ic-compiler.cc |
@@ -43,90 +43,35 @@ Handle<Code> PropertyICCompiler::ComputeKeyedLoadMonomorphicHandler( |
return stub; |
} |
- |
Handle<Code> PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler( |
- Handle<Map> receiver_map, LanguageMode language_mode, |
- KeyedAccessStoreMode store_mode) { |
+ Handle<Map> receiver_map, KeyedAccessStoreMode store_mode) { |
Isolate* isolate = receiver_map->GetIsolate(); |
- ExtraICState extra_state = |
- KeyedStoreIC::ComputeExtraICState(language_mode, store_mode); |
DCHECK(store_mode == STANDARD_STORE || |
store_mode == STORE_AND_GROW_NO_TRANSITION || |
store_mode == STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS || |
store_mode == STORE_NO_TRANSITION_HANDLE_COW); |
- PropertyICCompiler compiler(isolate, Code::KEYED_STORE_IC, extra_state); |
+ PropertyICCompiler compiler(isolate); |
Handle<Code> code = |
compiler.CompileKeyedStoreMonomorphicHandler(receiver_map, store_mode); |
return code; |
} |
- |
-static void FillCache(Isolate* isolate, Handle<Code> code) { |
- Handle<UnseededNumberDictionary> dictionary = UnseededNumberDictionary::Set( |
- isolate->factory()->non_monomorphic_cache(), code->flags(), code); |
- isolate->heap()->SetRootNonMonomorphicCache(*dictionary); |
-} |
- |
- |
-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(); |
- int entry = cache->FindEntry(isolate, flags); |
- if (entry != -1) return Handle<Code>(Code::cast(cache->ValueAt(entry))); |
- |
- PropertyICCompiler compiler(isolate, Code::STORE_IC); |
- Handle<Code> code = compiler.CompileStoreMegamorphic(flags); |
- |
- FillCache(isolate, code); |
- return code; |
-} |
- |
- |
void PropertyICCompiler::ComputeKeyedStorePolymorphicHandlers( |
MapHandleList* receiver_maps, MapHandleList* transitioned_maps, |
- CodeHandleList* handlers, KeyedAccessStoreMode store_mode, |
- LanguageMode language_mode) { |
+ CodeHandleList* handlers, KeyedAccessStoreMode store_mode) { |
Isolate* isolate = receiver_maps->at(0)->GetIsolate(); |
DCHECK(store_mode == STANDARD_STORE || |
store_mode == STORE_AND_GROW_NO_TRANSITION || |
store_mode == STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS || |
store_mode == STORE_NO_TRANSITION_HANDLE_COW); |
- ExtraICState extra_state = |
- KeyedStoreIC::ComputeExtraICState(language_mode, store_mode); |
- PropertyICCompiler compiler(isolate, Code::KEYED_STORE_IC, extra_state); |
+ PropertyICCompiler compiler(isolate); |
compiler.CompileKeyedStorePolymorphicHandlers( |
receiver_maps, transitioned_maps, handlers, store_mode); |
} |
-Handle<Code> PropertyICCompiler::CompileStoreMegamorphic(Code::Flags flags) { |
- StoreIC::GenerateMegamorphic(masm()); |
- Handle<Code> code = GetCodeWithFlags(flags, "CompileStoreMegamorphic"); |
- PROFILE(isolate(), CodeCreateEvent(Logger::STORE_MEGAMORPHIC_TAG, |
- AbstractCode::cast(*code), 0)); |
- return code; |
-} |
- |
-Handle<Code> PropertyICCompiler::GetCode(Code::Kind kind, Handle<Name> name, |
- InlineCacheState state) { |
- Code::Flags flags = |
- 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)); |
-#ifdef DEBUG |
- code->VerifyEmbeddedObjects(); |
-#endif |
- return code; |
-} |
- |
- |
void PropertyICCompiler::CompileKeyedStorePolymorphicHandlers( |
MapHandleList* receiver_maps, MapHandleList* transitioned_maps, |
CodeHandleList* handlers, KeyedAccessStoreMode store_mode) { |