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

Unified Diff: src/ic/ic.cc

Issue 2670843002: [stubs] Also port the CallICStub to CSA. (Closed)
Patch Set: Introduce FullCodeGenerator::IntFromSlot. Created 3 years, 11 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/interface-descriptors.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 1f2c4d74722cbac0095af2f9c840d64d237e9796..0513bee75ee7d935dedc1a66d25bf27e1885e0ec 100644
--- a/src/ic/ic.cc
+++ b/src/ic/ic.cc
@@ -2482,48 +2482,6 @@ MaybeHandle<Object> KeyedStoreIC::Store(Handle<Object> object,
}
-void CallIC::HandleMiss(Handle<Object> function) {
- Handle<Object> name = isolate()->factory()->empty_string();
- CallICNexus* nexus = casted_nexus<CallICNexus>();
- Object* feedback = nexus->GetFeedback();
-
- // Hand-coded MISS handling is easier if CallIC slots don't contain smis.
- DCHECK(!feedback->IsSmi());
-
- if (feedback->IsWeakCell() || !function->IsJSFunction() ||
- feedback->IsAllocationSite()) {
- // We are going generic.
- nexus->ConfigureMegamorphic();
- } else {
- DCHECK(feedback == *TypeFeedbackVector::UninitializedSentinel(isolate()));
- Handle<JSFunction> js_function = Handle<JSFunction>::cast(function);
-
- Handle<JSFunction> array_function =
- Handle<JSFunction>(isolate()->native_context()->array_function());
- if (array_function.is_identical_to(js_function)) {
- // Alter the slot.
- nexus->ConfigureMonomorphicArray();
- } else if (js_function->context()->native_context() !=
- *isolate()->native_context()) {
- // Don't collect cross-native context feedback for the CallIC.
- // TODO(bmeurer): We should collect the SharedFunctionInfo as
- // feedback in this case instead.
- nexus->ConfigureMegamorphic();
- } else {
- nexus->ConfigureMonomorphic(js_function);
- }
- }
-
- if (function->IsJSFunction()) {
- Handle<JSFunction> js_function = Handle<JSFunction>::cast(function);
- name = handle(js_function->shared()->name(), isolate());
- }
-
- OnTypeFeedbackChanged(isolate(), get_host());
- TRACE_IC("CallIC", name);
-}
-
-
#undef TRACE_IC
@@ -2532,22 +2490,6 @@ void CallIC::HandleMiss(Handle<Object> function) {
//
// Used from ic-<arch>.cc.
-RUNTIME_FUNCTION(Runtime_CallIC_Miss) {
- HandleScope scope(isolate);
- DCHECK_EQ(3, args.length());
- // Runtime functions don't follow the IC's calling convention.
- Handle<Object> function = args.at(0);
- Handle<TypeFeedbackVector> vector = args.at<TypeFeedbackVector>(1);
- Handle<Smi> slot = args.at<Smi>(2);
- FeedbackVectorSlot vector_slot = vector->ToSlot(slot->value());
- CallICNexus nexus(vector, vector_slot);
- CallIC ic(isolate, &nexus);
- ic.HandleMiss(function);
- return *function;
-}
-
-
-// Used from ic-<arch>.cc.
RUNTIME_FUNCTION(Runtime_LoadIC_Miss) {
HandleScope scope(isolate);
DCHECK_EQ(4, args.length());
« no previous file with comments | « src/ic/ic.h ('k') | src/interface-descriptors.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698