| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 (1 << kPageSizeBits) >> (kPointerSizeLog2); | 176 (1 << kPageSizeBits) >> (kPointerSizeLog2); |
| 177 | 177 |
| 178 static const size_t kSize = | 178 static const size_t kSize = |
| 179 (1 << kPageSizeBits) >> (kPointerSizeLog2 + kBitsPerByteLog2); | 179 (1 << kPageSizeBits) >> (kPointerSizeLog2 + kBitsPerByteLog2); |
| 180 | 180 |
| 181 | 181 |
| 182 static int CellsForLength(int length) { | 182 static int CellsForLength(int length) { |
| 183 return (length + kBitsPerCell - 1) >> kBitsPerCellLog2; | 183 return (length + kBitsPerCell - 1) >> kBitsPerCellLog2; |
| 184 } | 184 } |
| 185 | 185 |
| 186 int CellsCount() { | 186 INLINE(int CellsCount()); |
| 187 return CellsForLength(kLength); | |
| 188 } | |
| 189 | 187 |
| 190 static int SizeFor(int cells_count) { | 188 static int SizeFor(int cells_count) { |
| 191 return sizeof(MarkBit::CellType) * cells_count; | 189 return sizeof(MarkBit::CellType) * cells_count; |
| 192 } | 190 } |
| 193 | 191 |
| 194 INLINE(static uint32_t IndexToCell(uint32_t index)) { | 192 INLINE(static uint32_t IndexToCell(uint32_t index)) { |
| 195 return index >> kBitsPerCellLog2; | 193 return index >> kBitsPerCellLog2; |
| 196 } | 194 } |
| 197 | 195 |
| 198 INLINE(static uint32_t CellToIndex(uint32_t index)) { | 196 INLINE(static uint32_t CellToIndex(uint32_t index)) { |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 494 static const int kBodyOffset = | 492 static const int kBodyOffset = |
| 495 CODE_POINTER_ALIGN(MAP_POINTER_ALIGN(kHeaderSize + Bitmap::kSize)); | 493 CODE_POINTER_ALIGN(MAP_POINTER_ALIGN(kHeaderSize + Bitmap::kSize)); |
| 496 | 494 |
| 497 // The start offset of the object area in a page. Aligned to both maps and | 495 // The start offset of the object area in a page. Aligned to both maps and |
| 498 // code alignment to be suitable for both. Also aligned to 32 words because | 496 // code alignment to be suitable for both. Also aligned to 32 words because |
| 499 // the marking bitmap is arranged in 32 bit chunks. | 497 // the marking bitmap is arranged in 32 bit chunks. |
| 500 static const int kObjectStartAlignment = 32 * kPointerSize; | 498 static const int kObjectStartAlignment = 32 * kPointerSize; |
| 501 static const int kObjectStartOffset = kBodyOffset - 1 + | 499 static const int kObjectStartOffset = kBodyOffset - 1 + |
| 502 (kObjectStartAlignment - (kBodyOffset - 1) % kObjectStartAlignment); | 500 (kObjectStartAlignment - (kBodyOffset - 1) % kObjectStartAlignment); |
| 503 | 501 |
| 502 static const int kLargeObjectBodyOffset = |
| 503 CODE_POINTER_ALIGN(MAP_POINTER_ALIGN(kHeaderSize + kPointerSize)); |
| 504 static const int kLargeObjectStartOffset = |
| 505 kObjectStartAlignment + (kLargeObjectBodyOffset - 1) - |
| 506 (kLargeObjectBodyOffset - 1) % kObjectStartAlignment; |
| 507 |
| 504 size_t size() const { return size_; } | 508 size_t size() const { return size_; } |
| 505 | 509 |
| 506 void set_size(size_t size) { | 510 void set_size(size_t size) { |
| 507 size_ = size; | 511 size_ = size; |
| 508 } | 512 } |
| 509 | 513 |
| 510 void SetArea(Address area_start, Address area_end) { | 514 void SetArea(Address area_start, Address area_end) { |
| 511 area_start_ = area_start; | 515 area_start_ = area_start; |
| 512 area_end_ = area_end; | 516 area_end_ = area_end; |
| 513 } | 517 } |
| (...skipping 2125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2639 } | 2643 } |
| 2640 // Must be small, since an iteration is used for lookup. | 2644 // Must be small, since an iteration is used for lookup. |
| 2641 static const int kMaxComments = 64; | 2645 static const int kMaxComments = 64; |
| 2642 }; | 2646 }; |
| 2643 #endif | 2647 #endif |
| 2644 | 2648 |
| 2645 | 2649 |
| 2646 } } // namespace v8::internal | 2650 } } // namespace v8::internal |
| 2647 | 2651 |
| 2648 #endif // V8_SPACES_H_ | 2652 #endif // V8_SPACES_H_ |
| OLD | NEW |