Reviewers: Weiliang,
Message:
PTAL
Description:
X87: VectorICs: refactoring to eliminate "for queries only" vector ic mode.
port 1a5751f9b3ca682fadb6fce8202dda2db5b017c6 (r29956)
original commit message:
Since we need the notion of a dummy vector ic, we can use that to avoid
a special case of the IC constructor. Also, consolidate the two dummy
ICs into one.
BUG=
Please review this at https://codereview.chromium.org/1265113002/
Base URL: https://chromium.googlesource.com/v8/v8.git@master
Affected files (+10, -7 lines):
M src/ic/x87/ic-x87.cc
M src/x87/builtins-x87.cc
Index: src/ic/x87/ic-x87.cc
diff --git a/src/ic/x87/ic-x87.cc b/src/ic/x87/ic-x87.cc
index
e5e941076eadedca46a33069265fa273d38c20a8..16e8ea08b30104caa488a5a2c96087176b6c8670
100644
--- a/src/ic/x87/ic-x87.cc
+++ b/src/ic/x87/ic-x87.cc
@@ -340,9 +340,10 @@ void KeyedLoadIC::GenerateMegamorphic(MacroAssembler*
masm,
// The handlers in the stub cache expect a vector and slot. Since we
won't
// change the IC from any downstream misses, a dummy vector can be used.
- Handle<TypeFeedbackVector> dummy_vector =
Handle<TypeFeedbackVector>::cast(
- isolate->factory()->keyed_load_dummy_vector());
- int slot = dummy_vector->GetIndex(FeedbackVectorICSlot(0));
+ Handle<TypeFeedbackVector> dummy_vector =
+ TypeFeedbackVector::DummyVector(isolate);
+ int slot = dummy_vector->GetIndex(
+ FeedbackVectorICSlot(TypeFeedbackVector::kDummyKeyedLoadICSlot));
__ push(Immediate(Smi::FromInt(slot)));
__ push(Immediate(dummy_vector));
@@ -567,9 +568,10 @@ void KeyedStoreIC::GenerateMegamorphic(MacroAssembler*
masm,
if (FLAG_vector_stores) {
// The handlers in the stub cache expect a vector and slot. Since we
won't
// change the IC from any downstream misses, a dummy vector can be
used.
- Handle<TypeFeedbackVector> dummy_vector =
Handle<TypeFeedbackVector>::cast(
- masm->isolate()->factory()->keyed_store_dummy_vector());
- int slot = dummy_vector->GetIndex(FeedbackVectorICSlot(0));
+ Handle<TypeFeedbackVector> dummy_vector =
+ TypeFeedbackVector::DummyVector(masm->isolate());
+ int slot = dummy_vector->GetIndex(
+ FeedbackVectorICSlot(TypeFeedbackVector::kDummyKeyedStoreICSlot));
__ push(Immediate(Smi::FromInt(slot)));
__ push(Immediate(dummy_vector));
}
Index: src/x87/builtins-x87.cc
diff --git a/src/x87/builtins-x87.cc b/src/x87/builtins-x87.cc
index
f6cf7a165195a96ca5e0e690d845cf4645f43f49..4fc08f5b94b2478ceeaa43d88a5fbefc1f2d9aa4
100644
--- a/src/x87/builtins-x87.cc
+++ b/src/x87/builtins-x87.cc
@@ -1105,7 +1105,8 @@ static void
Generate_PushAppliedArguments(MacroAssembler* masm,
__ mov(receiver, Operand(ebp, argumentsOffset)); // load arguments
// Use inline caching to speed up access to arguments.
- FeedbackVectorSpec spec(0, Code::KEYED_LOAD_IC);
+ Code::Kind kinds[] = {Code::KEYED_LOAD_IC};
+ FeedbackVectorSpec spec(0, 1, kinds);
Handle<TypeFeedbackVector> feedback_vector =
masm->isolate()->factory()->NewTypeFeedbackVector(&spec);
int index = feedback_vector->GetIndex(FeedbackVectorICSlot(0));
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.