Chromium Code Reviews| Index: src/hydrogen-instructions.h |
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
| index adff7a2529da942ae5ea128148ff3204c5e2d7b4..59e06c96dafc595fbef1f6e60b455607c5866802 100644 |
| --- a/src/hydrogen-instructions.h |
| +++ b/src/hydrogen-instructions.h |
| @@ -5405,6 +5405,14 @@ class HLoadGlobalGeneric V8_FINAL : public HTemplateInstruction<2> { |
| HValue* global_object() { return OperandAt(1); } |
| Handle<Object> name() const { return name_; } |
| bool for_typeof() const { return for_typeof_; } |
| + int slot() const { |
| + ASSERT(FLAG_vector_ics && slot_ != -1); |
|
Toon Verwaest
2014/07/18 09:52:16
!= kInvalidFeedbackSlot
mvstanton
2014/07/18 13:35:05
Done.
|
| + return slot_; |
| + } |
| + void set_slot(int slot) { |
| + ASSERT(FLAG_vector_ics); |
| + slot_ = slot; |
| + } |
| virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| @@ -5420,7 +5428,8 @@ class HLoadGlobalGeneric V8_FINAL : public HTemplateInstruction<2> { |
| Handle<Object> name, |
| bool for_typeof) |
| : name_(name), |
| - for_typeof_(for_typeof) { |
| + for_typeof_(for_typeof), |
| + slot_(-1) { |
|
Toon Verwaest
2014/07/18 09:52:16
kInvalidFeedbackSlot
mvstanton
2014/07/18 13:35:05
Done.
|
| SetOperandAt(0, context); |
| SetOperandAt(1, global_object); |
| set_representation(Representation::Tagged()); |
| @@ -5429,6 +5438,7 @@ class HLoadGlobalGeneric V8_FINAL : public HTemplateInstruction<2> { |
| Handle<Object> name_; |
| bool for_typeof_; |
| + int slot_; |
| }; |
| @@ -6395,6 +6405,15 @@ class HLoadNamedGeneric V8_FINAL : public HTemplateInstruction<2> { |
| HValue* object() { return OperandAt(1); } |
| Handle<Object> name() const { return name_; } |
| + int slot() const { |
| + ASSERT(FLAG_vector_ics && slot_ != -1); |
|
Toon Verwaest
2014/07/18 09:52:16
kInvalidFeedbackSlot
mvstanton
2014/07/18 13:35:05
Done.
|
| + return slot_; |
| + } |
| + void set_slot(int slot) { |
| + ASSERT(FLAG_vector_ics); |
| + slot_ = slot; |
| + } |
| + |
| virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| return Representation::Tagged(); |
| } |
| @@ -6405,7 +6424,8 @@ class HLoadNamedGeneric V8_FINAL : public HTemplateInstruction<2> { |
| private: |
| HLoadNamedGeneric(HValue* context, HValue* object, Handle<Object> name) |
| - : name_(name) { |
| + : name_(name), |
| + slot_(-1) { |
|
Toon Verwaest
2014/07/18 09:52:16
kInvalidFeedbackSlot
mvstanton
2014/07/18 13:35:05
Done.
|
| SetOperandAt(0, context); |
| SetOperandAt(1, object); |
| set_representation(Representation::Tagged()); |
| @@ -6413,6 +6433,7 @@ class HLoadNamedGeneric V8_FINAL : public HTemplateInstruction<2> { |
| } |
| Handle<Object> name_; |
| + int slot_; |
| }; |
| @@ -6658,6 +6679,14 @@ class HLoadKeyedGeneric V8_FINAL : public HTemplateInstruction<3> { |
| HValue* object() { return OperandAt(0); } |
| HValue* key() { return OperandAt(1); } |
| HValue* context() { return OperandAt(2); } |
| + int slot() const { |
| + ASSERT(FLAG_vector_ics && slot_ != -1); |
| + return slot_; |
| + } |
| + void set_slot(int slot) { |
| + ASSERT(FLAG_vector_ics); |
| + slot_ = slot; |
| + } |
| virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| @@ -6671,13 +6700,16 @@ class HLoadKeyedGeneric V8_FINAL : public HTemplateInstruction<3> { |
| DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric) |
| private: |
| - HLoadKeyedGeneric(HValue* context, HValue* obj, HValue* key) { |
| + HLoadKeyedGeneric(HValue* context, HValue* obj, HValue* key) |
| + : slot_(-1) { |
| set_representation(Representation::Tagged()); |
| SetOperandAt(0, obj); |
| SetOperandAt(1, key); |
| SetOperandAt(2, context); |
| SetAllSideEffects(); |
| } |
| + |
| + int slot_; |
| }; |