OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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_HEAP_SPACES_H_ | 5 #ifndef V8_HEAP_SPACES_H_ |
6 #define V8_HEAP_SPACES_H_ | 6 #define V8_HEAP_SPACES_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/atomic-utils.h" | 9 #include "src/atomic-utils.h" |
10 #include "src/base/atomicops.h" | 10 #include "src/base/atomicops.h" |
(...skipping 2673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2684 } | 2684 } |
2685 | 2685 |
2686 // Return the address of the first object in the active semispace. | 2686 // Return the address of the first object in the active semispace. |
2687 Address bottom() { return to_space_.space_start(); } | 2687 Address bottom() { return to_space_.space_start(); } |
2688 | 2688 |
2689 // Get the age mark of the inactive semispace. | 2689 // Get the age mark of the inactive semispace. |
2690 Address age_mark() { return from_space_.age_mark(); } | 2690 Address age_mark() { return from_space_.age_mark(); } |
2691 // Set the age mark in the active semispace. | 2691 // Set the age mark in the active semispace. |
2692 void set_age_mark(Address mark) { to_space_.set_age_mark(mark); } | 2692 void set_age_mark(Address mark) { to_space_.set_age_mark(mark); } |
2693 | 2693 |
2694 // The start address of the space and a bit mask. Anding an address in the | |
2695 // new space with the mask will result in the start address. | |
2696 Address start() { return start_; } | |
2697 | |
2698 // The allocation top and limit address. | 2694 // The allocation top and limit address. |
2699 Address* allocation_top_address() { return allocation_info_.top_address(); } | 2695 Address* allocation_top_address() { return allocation_info_.top_address(); } |
2700 | 2696 |
2701 // The allocation limit address. | 2697 // The allocation limit address. |
2702 Address* allocation_limit_address() { | 2698 Address* allocation_limit_address() { |
2703 return allocation_info_.limit_address(); | 2699 return allocation_info_.limit_address(); |
2704 } | 2700 } |
2705 | 2701 |
2706 MUST_USE_RESULT INLINE(AllocationResult AllocateRawAligned( | 2702 MUST_USE_RESULT INLINE(AllocationResult AllocateRawAligned( |
2707 int size_in_bytes, AllocationAlignment alignment)); | 2703 int size_in_bytes, AllocationAlignment alignment)); |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2811 | 2807 |
2812 Address chunk_base_; | 2808 Address chunk_base_; |
2813 uintptr_t chunk_size_; | 2809 uintptr_t chunk_size_; |
2814 | 2810 |
2815 // The semispaces. | 2811 // The semispaces. |
2816 SemiSpace to_space_; | 2812 SemiSpace to_space_; |
2817 SemiSpace from_space_; | 2813 SemiSpace from_space_; |
2818 base::VirtualMemory reservation_; | 2814 base::VirtualMemory reservation_; |
2819 int pages_used_; | 2815 int pages_used_; |
2820 | 2816 |
2821 // Start address and bit mask for containment testing. | |
2822 Address start_; | |
2823 | |
2824 // Allocation pointer and limit for normal allocation and allocation during | 2817 // Allocation pointer and limit for normal allocation and allocation during |
2825 // mark-compact collection. | 2818 // mark-compact collection. |
2826 AllocationInfo allocation_info_; | 2819 AllocationInfo allocation_info_; |
2827 | 2820 |
2828 Address top_on_previous_step_; | 2821 Address top_on_previous_step_; |
2829 | 2822 |
2830 HistogramInfo* allocated_histogram_; | 2823 HistogramInfo* allocated_histogram_; |
2831 HistogramInfo* promoted_histogram_; | 2824 HistogramInfo* promoted_histogram_; |
2832 | 2825 |
2833 bool EnsureAllocation(int size_in_bytes, AllocationAlignment alignment); | 2826 bool EnsureAllocation(int size_in_bytes, AllocationAlignment alignment); |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3092 count = 0; | 3085 count = 0; |
3093 } | 3086 } |
3094 // Must be small, since an iteration is used for lookup. | 3087 // Must be small, since an iteration is used for lookup. |
3095 static const int kMaxComments = 64; | 3088 static const int kMaxComments = 64; |
3096 }; | 3089 }; |
3097 #endif | 3090 #endif |
3098 } // namespace internal | 3091 } // namespace internal |
3099 } // namespace v8 | 3092 } // namespace v8 |
3100 | 3093 |
3101 #endif // V8_HEAP_SPACES_H_ | 3094 #endif // V8_HEAP_SPACES_H_ |
OLD | NEW |