Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(649)

Unified Diff: src/ic/ic.cc

Issue 1864703003: Turn StoreIC::Megamorphic into a builtin, get rid of the non-monomorphic-cache (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/ic/ic.h ('k') | src/ic/ic-compiler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ic/ic.cc
diff --git a/src/ic/ic.cc b/src/ic/ic.cc
index 17614fa4ec8f1249f4ff8cdae77356d377a15869..37fbf44843327d1e1112fb5da14cd3058d80d298 100644
--- a/src/ic/ic.cc
+++ b/src/ic/ic.cc
@@ -1431,8 +1431,9 @@ Handle<Code> StoreIC::initialize_stub_in_optimized_code(
return stub.GetCode();
}
- return PropertyICCompiler::ComputeStore(isolate, initialization_state,
- ComputeExtraICState(language_mode));
+ return is_strict(language_mode)
+ ? isolate->builtins()->StoreIC_Megamorphic_Strict()
+ : isolate->builtins()->StoreIC_Megamorphic();
}
Handle<Code> StoreIC::slow_stub() const {
@@ -1631,8 +1632,8 @@ void KeyedStoreIC::UpdateStoreElement(Handle<Map> receiver_map,
ComputeTransitionedMap(receiver_map, store_mode);
store_mode = GetNonTransitioningStoreMode(store_mode);
Handle<Code> handler =
- PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(
- monomorphic_map, language_mode(), store_mode);
+ PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(monomorphic_map,
+ store_mode);
return ConfigureVectorState(Handle<Name>(), monomorphic_map, handler);
}
@@ -1658,7 +1659,7 @@ void KeyedStoreIC::UpdateStoreElement(Handle<Map> receiver_map,
store_mode = GetNonTransitioningStoreMode(store_mode);
Handle<Code> handler =
PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(
- transitioned_receiver_map, language_mode(), store_mode);
+ transitioned_receiver_map, store_mode);
ConfigureVectorState(Handle<Name>(), transitioned_receiver_map, handler);
return;
}
@@ -1671,8 +1672,8 @@ void KeyedStoreIC::UpdateStoreElement(Handle<Map> receiver_map,
// grow at the end of the array, handle OOB accesses or copy COW arrays
// and still stay MONOMORPHIC.
Handle<Code> handler =
- PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(
- receiver_map, language_mode(), store_mode);
+ PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(receiver_map,
+ store_mode);
return ConfigureVectorState(Handle<Name>(), receiver_map, handler);
}
}
@@ -1733,8 +1734,7 @@ void KeyedStoreIC::UpdateStoreElement(Handle<Map> receiver_map,
MapHandleList transitioned_maps(target_receiver_maps.length());
CodeHandleList handlers(target_receiver_maps.length());
PropertyICCompiler::ComputeKeyedStorePolymorphicHandlers(
- &target_receiver_maps, &transitioned_maps, &handlers, store_mode,
- language_mode());
+ &target_receiver_maps, &transitioned_maps, &handlers, store_mode);
ConfigureVectorState(&target_receiver_maps, &transitioned_maps, &handlers);
}
« no previous file with comments | « src/ic/ic.h ('k') | src/ic/ic-compiler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698