Chromium Code Reviews| Index: src/code-stubs.h |
| diff --git a/src/code-stubs.h b/src/code-stubs.h |
| index 513ad9a7c2937912675eb389975a9e8bb465f077..aec1e4fd5b3f2bec869f7860e484cc928d272924 100644 |
| --- a/src/code-stubs.h |
| +++ b/src/code-stubs.h |
| @@ -1684,19 +1684,22 @@ class TransitionElementsKindStub : public HydrogenCodeStub { |
| class ArrayConstructorStubBase : public HydrogenCodeStub { |
| public: |
| - ArrayConstructorStubBase(ElementsKind kind, AllocationSiteMode mode) { |
| + ArrayConstructorStubBase(ElementsKind kind, bool disable_allocation_sites) { |
| + // It only makes sense to override local allocation site behavior |
| + // if there is a difference between the global allocation site policy |
| + // for an ElementsKind and the desired usage of the stub. |
| + ASSERT(!disable_allocation_sites || |
| + AllocationSiteInfo::GetMode(kind) == TRACK_ALLOCATION_SITE); |
| bit_field_ = ElementsKindBits::encode(kind) | |
| - AllocationSiteModeBits::encode(mode == TRACK_ALLOCATION_SITE); |
| + DisableAllocationSitesBits::encode(disable_allocation_sites); |
| } |
| ElementsKind elements_kind() const { |
| return ElementsKindBits::decode(bit_field_); |
| } |
| - AllocationSiteMode mode() const { |
| - return AllocationSiteModeBits::decode(bit_field_) |
| - ? TRACK_ALLOCATION_SITE |
| - : DONT_TRACK_ALLOCATION_SITE; |
| + bool disable_allocation_sites() const { |
|
Hannes Payer (out of office)
2013/06/04 12:25:54
This is not a real getter. The function name shoul
|
| + return DisableAllocationSitesBits::decode(bit_field_); |
| } |
| virtual bool IsPregenerated() { return true; } |
| @@ -1711,7 +1714,7 @@ class ArrayConstructorStubBase : public HydrogenCodeStub { |
| int NotMissMinorKey() { return bit_field_; } |
| class ElementsKindBits: public BitField<ElementsKind, 0, 8> {}; |
| - class AllocationSiteModeBits: public BitField<bool, 8, 1> {}; |
| + class DisableAllocationSitesBits: public BitField<bool, 8, 1> {}; |
|
Hannes Payer (out of office)
2013/06/04 12:25:54
Do you want to rename it to DisableAllocationSites
|
| uint32_t bit_field_; |
| DISALLOW_COPY_AND_ASSIGN(ArrayConstructorStubBase); |
| @@ -1722,8 +1725,8 @@ class ArrayNoArgumentConstructorStub : public ArrayConstructorStubBase { |
| public: |
| ArrayNoArgumentConstructorStub( |
| ElementsKind kind, |
| - AllocationSiteMode mode = TRACK_ALLOCATION_SITE) |
| - : ArrayConstructorStubBase(kind, mode) { |
| + bool disable_allocation_sites = false) |
| + : ArrayConstructorStubBase(kind, disable_allocation_sites) { |
| } |
| virtual Handle<Code> GenerateCode(); |
| @@ -1743,8 +1746,8 @@ class ArraySingleArgumentConstructorStub : public ArrayConstructorStubBase { |
| public: |
| ArraySingleArgumentConstructorStub( |
| ElementsKind kind, |
| - AllocationSiteMode mode = TRACK_ALLOCATION_SITE) |
| - : ArrayConstructorStubBase(kind, mode) { |
| + bool disable_allocation_sites = false) |
| + : ArrayConstructorStubBase(kind, disable_allocation_sites) { |
| } |
| virtual Handle<Code> GenerateCode(); |
| @@ -1764,8 +1767,8 @@ class ArrayNArgumentsConstructorStub : public ArrayConstructorStubBase { |
| public: |
| ArrayNArgumentsConstructorStub( |
| ElementsKind kind, |
| - AllocationSiteMode mode = TRACK_ALLOCATION_SITE) : |
| - ArrayConstructorStubBase(kind, mode) { |
| + bool disable_allocation_sites = false) |
| + : ArrayConstructorStubBase(kind, disable_allocation_sites) { |
| } |
| virtual Handle<Code> GenerateCode(); |