Revision: 24870
Author:   [email protected]
Date:     Fri Oct 24 12:39:49 2014 UTC
Log: TurboFan calls to vector-based ics need to resolve a slot to an index.

This is to cope with the recent division of the TypeFeedbackVector into
Slots and ICSlots.

[email protected]

Review URL: https://codereview.chromium.org/673203002
https://code.google.com/p/v8/source/detail?r=24870

Modified:
 /branches/bleeding_edge/src/compiler/js-generic-lowering.cc
 /branches/bleeding_edge/src/compiler/js-operator.h

=======================================
--- /branches/bleeding_edge/src/compiler/js-generic-lowering.cc Fri Oct 10 13:22:10 2014 UTC +++ /branches/bleeding_edge/src/compiler/js-generic-lowering.cc Fri Oct 24 12:39:49 2014 UTC
@@ -275,8 +275,7 @@
   const LoadPropertyParameters& p = LoadPropertyParametersOf(node->op());
   Callable callable = CodeFactory::KeyedLoadICInOptimizedCode(isolate());
   if (FLAG_vector_ics) {
-    PatchInsertInput(node, 2,
-                     jsgraph()->SmiConstant(p.feedback().slot().ToInt()));
+ PatchInsertInput(node, 2, jsgraph()->SmiConstant(p.feedback().index())); PatchInsertInput(node, 3, jsgraph()->HeapConstant(p.feedback().vector()));
   }
   ReplaceWithStubCall(node, callable, CallDescriptor::kPatchableCallSite);
@@ -289,8 +288,7 @@
       CodeFactory::LoadICInOptimizedCode(isolate(), p.contextual_mode());
   PatchInsertInput(node, 1, jsgraph()->HeapConstant(p.name()));
   if (FLAG_vector_ics) {
-    PatchInsertInput(node, 2,
-                     jsgraph()->SmiConstant(p.feedback().slot().ToInt()));
+ PatchInsertInput(node, 2, jsgraph()->SmiConstant(p.feedback().index())); PatchInsertInput(node, 3, jsgraph()->HeapConstant(p.feedback().vector()));
   }
   ReplaceWithStubCall(node, callable, CallDescriptor::kPatchableCallSite);
=======================================
--- /branches/bleeding_edge/src/compiler/js-operator.h Mon Oct 20 11:42:56 2014 UTC +++ /branches/bleeding_edge/src/compiler/js-operator.h Fri Oct 24 12:39:49 2014 UTC
@@ -103,6 +103,8 @@

   Handle<TypeFeedbackVector> vector() const { return vector_; }
   FeedbackVectorICSlot slot() const { return slot_; }
+
+  int index() const { return vector_->GetIndex(slot_); }

  private:
   const Handle<TypeFeedbackVector> vector_;

--
--
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.

Reply via email to