Chromium Code Reviews| Index: src/hydrogen-instructions.h |
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
| index 27c517aa1a5be38b03e3ec186532dea8da7aeebb..3f1b10478dedcae0249e0e1fd7828a7b9ebeeb3e 100644 |
| --- a/src/hydrogen-instructions.h |
| +++ b/src/hydrogen-instructions.h |
| @@ -131,6 +131,7 @@ class LChunkBuilder; |
| V(IsSmiAndBranch) \ |
| V(IsUndetectableAndBranch) \ |
| V(LeaveInlined) \ |
| + V(LinkObjectInList) \ |
| V(LoadContextSlot) \ |
| V(LoadExternalArrayPointer) \ |
| V(LoadFunctionPrototype) \ |
| @@ -5326,6 +5327,10 @@ class HObjectAccess { |
| return HObjectAccess(kInobject, AllocationSite::kTransitionInfoOffset); |
| } |
| + static HObjectAccess ForAllocationSiteWeakNext() { |
| + return HObjectAccess(kInobject, AllocationSite::kWeakNextOffset); |
| + } |
| + |
| static HObjectAccess ForFixedArrayLength() { |
| return HObjectAccess(kArrayLengths, FixedArray::kLengthOffset); |
| } |
| @@ -5416,6 +5421,38 @@ class HObjectAccess { |
| }; |
| +class HLinkObjectInList: public HUnaryOperation { |
| + public: |
| + // There needs to be a mapping from every KnownList to an external reference |
| + enum KnownList { |
| + ALLOCATION_SITE_LIST |
| + }; |
| + |
| + HLinkObjectInList(HValue* object, HObjectAccess store_field, |
| + KnownList known_list) |
| + : HUnaryOperation(object), |
| + store_field_(store_field), |
|
Michael Starzinger
2013/07/17 11:25:30
nit: Indentation is off.
mvstanton
2013/07/17 11:49:00
Done.
|
| + known_list_(known_list) { |
| + set_representation(Representation::Tagged()); |
| + } |
| + |
| + HObjectAccess store_field() const { return store_field_; } |
| + KnownList known_list() const { return known_list_; } |
| + |
| + virtual Representation RequiredInputRepresentation(int index) { |
| + return Representation::Tagged(); |
| + } |
| + |
| + virtual void PrintDataTo(StringStream* stream); |
| + |
| + DECLARE_CONCRETE_INSTRUCTION(LinkObjectInList) |
| + |
| + private: |
| + HObjectAccess store_field_; |
| + KnownList known_list_; |
| +}; |
| + |
| + |
| class HLoadNamedField: public HTemplateInstruction<2> { |
| public: |
| HLoadNamedField(HValue* object, |