| Index: src/compiler/js-operator.h
|
| diff --git a/src/compiler/js-operator.h b/src/compiler/js-operator.h
|
| index 9a8bdd690afbf7cbe3952a32b2dfa88d191d5b43..1ba035456203bce2d9f0c1cbec5704da33477e93 100644
|
| --- a/src/compiler/js-operator.h
|
| +++ b/src/compiler/js-operator.h
|
| @@ -112,16 +112,36 @@ std::ostream& operator<<(std::ostream&, ContextAccess const&);
|
| ContextAccess const& ContextAccessOf(Operator const*);
|
|
|
|
|
| +class VectorSlotPair {
|
| + public:
|
| + VectorSlotPair(Handle<TypeFeedbackVector> vector, FeedbackVectorICSlot slot)
|
| + : vector_(vector), slot_(slot) {}
|
| +
|
| + Handle<TypeFeedbackVector> vector() const { return vector_; }
|
| + FeedbackVectorICSlot slot() const { return slot_; }
|
| +
|
| + int index() const { return vector_->GetIndex(slot_); }
|
| +
|
| + private:
|
| + const Handle<TypeFeedbackVector> vector_;
|
| + const FeedbackVectorICSlot slot_;
|
| +};
|
| +
|
| +
|
| +bool operator==(VectorSlotPair const& lhs, VectorSlotPair const& rhs);
|
| +
|
| +
|
| // Defines the name for a dynamic variable lookup. The {check_bitset} allows to
|
| // inline checks whether the lookup yields in a global variable. This is used as
|
| // a parameter by JSLoadDynamicGlobal and JSStoreDynamicGlobal operators.
|
| class DynamicGlobalAccess final {
|
| public:
|
| DynamicGlobalAccess(const Handle<String>& name, uint32_t check_bitset,
|
| - ContextualMode mode);
|
| + const VectorSlotPair& feedback, ContextualMode mode);
|
|
|
| const Handle<String>& name() const { return name_; }
|
| uint32_t check_bitset() const { return check_bitset_; }
|
| + const VectorSlotPair& feedback() const { return feedback_; }
|
| ContextualMode mode() const { return mode_; }
|
|
|
| // Indicates that an inline check is disabled.
|
| @@ -138,6 +158,7 @@ class DynamicGlobalAccess final {
|
| private:
|
| const Handle<String> name_;
|
| const uint32_t check_bitset_;
|
| + const VectorSlotPair feedback_;
|
| const ContextualMode mode_;
|
| };
|
|
|
| @@ -190,25 +211,6 @@ std::ostream& operator<<(std::ostream&, DynamicContextAccess const&);
|
| DynamicContextAccess const& DynamicContextAccessOf(Operator const*);
|
|
|
|
|
| -class VectorSlotPair {
|
| - public:
|
| - VectorSlotPair(Handle<TypeFeedbackVector> vector, FeedbackVectorICSlot slot)
|
| - : vector_(vector), slot_(slot) {}
|
| -
|
| - Handle<TypeFeedbackVector> vector() const { return vector_; }
|
| - FeedbackVectorICSlot slot() const { return slot_; }
|
| -
|
| - int index() const { return vector_->GetIndex(slot_); }
|
| -
|
| - private:
|
| - const Handle<TypeFeedbackVector> vector_;
|
| - const FeedbackVectorICSlot slot_;
|
| -};
|
| -
|
| -
|
| -bool operator==(VectorSlotPair const& lhs, VectorSlotPair const& rhs);
|
| -
|
| -
|
| // Defines the property being loaded from an object by a named load. This is
|
| // used as a parameter by JSLoadNamed operators.
|
| class LoadNamedParameters final {
|
| @@ -376,7 +378,9 @@ class JSOperatorBuilder final : public ZoneObject {
|
| const Operator* StoreContext(size_t depth, size_t index);
|
|
|
| const Operator* LoadDynamicGlobal(const Handle<String>& name,
|
| - uint32_t check_bitset, ContextualMode mode);
|
| + uint32_t check_bitset,
|
| + const VectorSlotPair& feedback,
|
| + ContextualMode mode);
|
| const Operator* LoadDynamicContext(const Handle<String>& name,
|
| uint32_t check_bitset, size_t depth,
|
| size_t index);
|
|
|