OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ | 5 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ |
6 #define V8_HYDROGEN_INSTRUCTIONS_H_ | 6 #define V8_HYDROGEN_INSTRUCTIONS_H_ |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 5571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5582 } | 5582 } |
5583 return flags; | 5583 return flags; |
5584 } | 5584 } |
5585 | 5585 |
5586 void UpdateClearNextMapWord(bool clear_next_map_word) { | 5586 void UpdateClearNextMapWord(bool clear_next_map_word) { |
5587 flags_ = static_cast<Flags>(clear_next_map_word | 5587 flags_ = static_cast<Flags>(clear_next_map_word |
5588 ? flags_ | CLEAR_NEXT_MAP_WORD | 5588 ? flags_ | CLEAR_NEXT_MAP_WORD |
5589 : flags_ & ~CLEAR_NEXT_MAP_WORD); | 5589 : flags_ & ~CLEAR_NEXT_MAP_WORD); |
5590 } | 5590 } |
5591 | 5591 |
5592 void UpdateSize(HValue* size, HConstant* size_upper_bound = NULL) { | 5592 void UpdateSize(HValue* size) { |
5593 SetOperandAt(1, size); | 5593 SetOperandAt(1, size); |
5594 if (size->IsInteger32Constant()) { | 5594 if (size->IsInteger32Constant()) { |
5595 size_upper_bound_ = HConstant::cast(size); | 5595 size_upper_bound_ = HConstant::cast(size); |
5596 } else { | 5596 } else { |
5597 size_upper_bound_ = size_upper_bound; | 5597 size_upper_bound_ = NULL; |
5598 } | 5598 } |
5599 } | 5599 } |
5600 | 5600 |
5601 HAllocate* GetFoldableDominator(HAllocate* dominator); | 5601 HAllocate* GetFoldableDominator(HAllocate* dominator); |
5602 | 5602 |
5603 void UpdateFreeSpaceFiller(int32_t filler_size); | 5603 void UpdateFreeSpaceFiller(int32_t filler_size); |
5604 | 5604 |
5605 void CreateFreeSpaceFiller(int32_t filler_size); | 5605 void CreateFreeSpaceFiller(int32_t filler_size); |
5606 | 5606 |
5607 bool IsFoldable(HAllocate* allocate) { | 5607 bool IsFoldable(HAllocate* allocate) { |
5608 return (IsNewSpaceAllocation() && allocate->IsNewSpaceAllocation()) || | 5608 return (IsNewSpaceAllocation() && allocate->IsNewSpaceAllocation()) || |
5609 (IsOldDataSpaceAllocation() && allocate->IsOldDataSpaceAllocation()) || | 5609 (IsOldDataSpaceAllocation() && allocate->IsOldDataSpaceAllocation()) || |
5610 (IsOldPointerSpaceAllocation() && | 5610 (IsOldPointerSpaceAllocation() && |
5611 allocate->IsOldPointerSpaceAllocation()); | 5611 allocate->IsOldPointerSpaceAllocation()); |
5612 } | 5612 } |
5613 | 5613 |
5614 void ClearNextMapWord(HValue* offset); | 5614 void ClearNextMapWord(int offset); |
5615 | 5615 |
5616 Flags flags_; | 5616 Flags flags_; |
5617 Handle<Map> known_initial_map_; | 5617 Handle<Map> known_initial_map_; |
5618 HAllocate* dominating_allocate_; | 5618 HAllocate* dominating_allocate_; |
5619 HStoreNamedField* filler_free_space_size_; | 5619 HStoreNamedField* filler_free_space_size_; |
5620 HConstant* size_upper_bound_; | 5620 HConstant* size_upper_bound_; |
5621 }; | 5621 }; |
5622 | 5622 |
5623 | 5623 |
5624 class HStoreCodeEntry V8_FINAL: public HTemplateInstruction<2> { | 5624 class HStoreCodeEntry V8_FINAL: public HTemplateInstruction<2> { |
(...skipping 2091 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7716 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 7716 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
7717 }; | 7717 }; |
7718 | 7718 |
7719 | 7719 |
7720 #undef DECLARE_INSTRUCTION | 7720 #undef DECLARE_INSTRUCTION |
7721 #undef DECLARE_CONCRETE_INSTRUCTION | 7721 #undef DECLARE_CONCRETE_INSTRUCTION |
7722 | 7722 |
7723 } } // namespace v8::internal | 7723 } } // namespace v8::internal |
7724 | 7724 |
7725 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7725 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |