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_; |
}; |