Lines Matching refs:page
41 FATAL("Code page is too large.");
52 FATAL("Code page is too large.");
57 LargePage* page = static_cast<LargePage*>(chunk);
58 page->SetFlag(MemoryChunk::LARGE_PAGE);
59 page->list_node().Initialize();
60 return page;
119 LargePage* page = first_page();
122 reinterpret_cast<void*>(page->address())));
123 memory_chunk_list_.Remove(page);
125 page);
156 LargePage* page = AllocateLargePage(object_size, executable);
157 if (page == nullptr) return AllocationResult::Failure();
158 page->SetOldGenerationPageFlags(heap()->incremental_marking()->IsMarking());
159 HeapObject object = page->GetObject();
170 page->InitializationMemoryFence();
171 heap()->NotifyOldGenerationExpansion(identity(), page);
192 LargePage* page = AllocateLargePage(object_size, executable);
193 if (page == nullptr) return AllocationResult::Failure();
194 page->SetOldGenerationPageFlags(heap()->incremental_marking()->IsMarking());
195 HeapObject object = page->GetObject();
203 page->InitializationMemoryFence();
205 heap()->isolate()->AddCodeMemoryChunk(page);
212 LargePage* page = heap()->memory_allocator()->AllocateLargePage(
214 if (page == nullptr) return nullptr;
215 DCHECK_GE(page->area_size(), static_cast<size_t>(object_size));
219 AddPage(page, object_size);
222 HeapObject object = page->GetObject();
226 return page;
241 LargePage* page = it->second;
242 CHECK(page->Contains(a));
243 return page;
264 void CodeLargeObjectSpace::InsertChunkMapEntries(LargePage* page) {
265 for (Address current = reinterpret_cast<Address>(page);
266 current < reinterpret_cast<Address>(page) + page->size();
268 chunk_map_[current] = page;
272 void CodeLargeObjectSpace::RemoveChunkMapEntries(LargePage* page) {
273 for (Address current = page->address();
274 current < reinterpret_cast<Address>(page) + page->size();
280 void OldLargeObjectSpace::PromoteNewLargeObject(LargePage* page) {
281 DCHECK_EQ(page->owner_identity(), NEW_LO_SPACE);
282 DCHECK(page->IsLargePage());
283 DCHECK(page->IsFlagSet(MemoryChunk::FROM_PAGE));
284 DCHECK(!page->IsFlagSet(MemoryChunk::TO_PAGE));
286 size_t object_size = static_cast<size_t>(page->GetObject().Size(cage_base));
287 static_cast<LargeObjectSpace*>(page->owner())->RemovePage(page, object_size);
288 page->ClearFlag(MemoryChunk::FROM_PAGE);
289 AddPage(page, object_size);
292 void LargeObjectSpace::AddPage(LargePage* page, size_t object_size) {
293 size_ += static_cast<int>(page->size());
294 AccountCommitted(page->size());
297 memory_chunk_list_.PushBack(page);
298 page->set_owner(this);
299 page->SetOldGenerationPageFlags(!is_off_thread() &&
303 void LargeObjectSpace::RemovePage(LargePage* page, size_t object_size) {
304 size_ -= static_cast<int>(page->size());
305 AccountUncommitted(page->size());
308 memory_chunk_list_.Remove(page);
309 page->set_owner(nullptr);
361 for (const LargePage* page : *this) {
362 if (page->Contains(addr)) return true;
386 // Each chunk contains an object that starts at the large object page's
389 Page* page = Page::FromHeapObject(object);
390 CHECK(object.address() == page->area_start());
515 LargePage* page = AllocateLargePage(object_size, NOT_EXECUTABLE);
516 if (page == nullptr) return AllocationResult::Failure();
521 HeapObject result = page->GetObject();
522 page->SetYoungGenerationPageFlags(heap()->incremental_marking()->IsMarking());
523 page->SetFlag(MemoryChunk::TO_PAGE);
526 page->AllocateYoungGenerationBitmap();
530 ->ClearLiveness(page);
532 page->InitializationMemoryFence();
533 DCHECK(page->IsLargePage());
534 DCHECK_EQ(page->owner_identity(), NEW_LO_SPACE);
559 LargePage* page = *it;
561 HeapObject object = page->GetObject();
565 RemovePage(page, size);
567 page);
569 heap()->concurrent_marking()->ClearMemoryChunkData(page);
603 void CodeLargeObjectSpace::AddPage(LargePage* page, size_t object_size) {
604 OldLargeObjectSpace::AddPage(page, object_size);
605 InsertChunkMapEntries(page);
608 void CodeLargeObjectSpace::RemovePage(LargePage* page, size_t object_size) {
609 RemoveChunkMapEntries(page);
610 heap()->isolate()->RemoveCodeMemoryChunk(page);
611 OldLargeObjectSpace::RemovePage(page, object_size);