OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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_SLOT_SET_H | 5 #ifndef V8_SLOT_SET_H |
6 #define V8_SLOT_SET_H | 6 #define V8_SLOT_SET_H |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/utils.h" | 10 #include "src/utils.h" |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 *bit_index = slot & (kBitsPerCell - 1); | 210 *bit_index = slot & (kBitsPerCell - 1); |
211 } | 211 } |
212 | 212 |
213 uint32_t* bucket[kBuckets]; | 213 uint32_t* bucket[kBuckets]; |
214 Address page_start_; | 214 Address page_start_; |
215 }; | 215 }; |
216 | 216 |
217 enum SlotType { | 217 enum SlotType { |
218 EMBEDDED_OBJECT_SLOT, | 218 EMBEDDED_OBJECT_SLOT, |
219 OBJECT_SLOT, | 219 OBJECT_SLOT, |
220 RELOCATED_CODE_OBJECT, | |
221 CELL_TARGET_SLOT, | 220 CELL_TARGET_SLOT, |
222 CODE_TARGET_SLOT, | 221 CODE_TARGET_SLOT, |
223 CODE_ENTRY_SLOT, | 222 CODE_ENTRY_SLOT, |
224 DEBUG_TARGET_SLOT, | 223 DEBUG_TARGET_SLOT, |
225 NUMBER_OF_SLOT_TYPES | 224 NUMBER_OF_SLOT_TYPES |
226 }; | 225 }; |
227 | 226 |
228 // Data structure for maintaining a multiset of typed slots in a page. | 227 // Data structure for maintaining a multiset of typed slots in a page. |
229 // Typed slots can only appear in Code and JSFunction objects, so | 228 // Typed slots can only appear in Code and JSFunction objects, so |
230 // the maximum possible offset is limited by the LargePage::kMaxCodePageSize. | 229 // the maximum possible offset is limited by the LargePage::kMaxCodePageSize. |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 }; | 328 }; |
330 | 329 |
331 Address page_start_; | 330 Address page_start_; |
332 Chunk* chunk_; | 331 Chunk* chunk_; |
333 }; | 332 }; |
334 | 333 |
335 } // namespace internal | 334 } // namespace internal |
336 } // namespace v8 | 335 } // namespace v8 |
337 | 336 |
338 #endif // V8_SLOT_SET_H | 337 #endif // V8_SLOT_SET_H |
OLD | NEW |