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

Unified Diff: src/ic/ic.h

Issue 1213773002: Vector ICs: Changes to the IC system to support vector-based stores. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: REBASE. Created 5 years, 6 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 | « no previous file | src/ic/ic.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ic/ic.h
diff --git a/src/ic/ic.h b/src/ic/ic.h
index 06ac716fd1b1936d7f6bca4f282ed34d62fc9b9c..743459c54d0d19aa6fd2885c87c1fc2387595f18 100644
--- a/src/ic/ic.h
+++ b/src/ic/ic.h
@@ -114,7 +114,9 @@ class IC {
static bool ICUseVector(Code::Kind kind) {
return kind == Code::LOAD_IC || kind == Code::KEYED_LOAD_IC ||
- kind == Code::CALL_IC;
+ kind == Code::CALL_IC ||
+ (FLAG_vector_stores &&
+ (kind == Code::STORE_IC || kind == Code::KEYED_STORE_IC));
}
protected:
@@ -497,7 +499,8 @@ class StoreIC : public IC {
return StoreICState(flag).GetExtraICState();
}
- StoreIC(FrameDepth depth, Isolate* isolate) : IC(depth, isolate) {
+ StoreIC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus = NULL)
+ : IC(depth, isolate, nexus) {
DCHECK(IsStoreStub());
}
@@ -531,6 +534,8 @@ class StoreIC : public IC {
bool LookupForWrite(LookupIterator* it, Handle<Object> value,
JSReceiver::StoreFromKeyed store_mode);
+ static void Clear(Isolate* isolate, Code* host, StoreICNexus* nexus);
+
protected:
// Stub accessors.
Handle<Code> megamorphic_stub() override;
@@ -594,7 +599,9 @@ class KeyedStoreIC : public StoreIC {
return IcCheckTypeField::decode(extra_state);
}
- KeyedStoreIC(FrameDepth depth, Isolate* isolate) : StoreIC(depth, isolate) {
+ KeyedStoreIC(FrameDepth depth, Isolate* isolate,
+ KeyedStoreICNexus* nexus = NULL)
+ : StoreIC(depth, isolate, nexus) {
DCHECK(target()->is_keyed_store_stub());
}
@@ -619,6 +626,8 @@ class KeyedStoreIC : public StoreIC {
static Handle<Code> initialize_stub_in_optimized_code(
Isolate* isolate, LanguageMode language_mode, State initialization_state);
+ static void Clear(Isolate* isolate, Code* host, KeyedStoreICNexus* nexus);
+
protected:
virtual Handle<Code> pre_monomorphic_stub() const {
return pre_monomorphic_stub(isolate(), language_mode());
« no previous file with comments | « no previous file | src/ic/ic.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698