Lines Matching defs:page
547 // indexes 127..255 are local to each second-level page
555 // Split folded encodings into pages, where each page is limited by ...
560 // and 127..255 references a local per-second-level-page table.
566 SecondLevelPage &page = secondLevelPages.back();
567 page.entryIndex = i;
581 page.localEncodingIndexes.count(cuPtr->encoding)) {
585 page.localEncodings.emplace_back(cuPtr->encoding);
586 page.localEncodingIndexes[cuPtr->encoding] = n++;
593 page.entryCount = i - page.entryIndex;
595 // If this is not the final page, see if it's possible to fit more entries
599 page.entryCount < REGULAR_SECOND_LEVEL_ENTRIES_MAX) {
600 page.kind = UNWIND_SECOND_LEVEL_REGULAR;
601 page.entryCount = std::min(REGULAR_SECOND_LEVEL_ENTRIES_MAX,
602 cuIndices.size() - page.entryIndex);
603 i = page.entryIndex + page.entryCount;
605 page.kind = UNWIND_SECOND_LEVEL_COMPRESSED;
619 // The extra second-level-page entry is for the sentinel
664 for (const SecondLevelPage &page : secondLevelPages) {
665 size_t idx = cuIndices[page.entryIndex];
697 for (const SecondLevelPage &page : secondLevelPages) {
698 if (page.kind == UNWIND_SECOND_LEVEL_COMPRESSED) {
700 cuEntries[cuIndices[page.entryIndex]].functionAddress;
704 p2p->kind = page.kind;
707 p2p->entryCount = page.entryCount;
710 p2p->encodingsCount = page.localEncodings.size();
712 for (size_t i = 0; i < page.entryCount; i++) {
714 cuEntries[cuIndices[page.entryIndex + i]];
717 it = page.localEncodingIndexes.find(cue.encoding);
721 if (!page.localEncodings.empty())
722 memcpy(ep, page.localEncodings.data(),
723 page.localEncodings.size() * sizeof(uint32_t));
727 p2p->kind = page.kind;
730 p2p->entryCount = page.entryCount;
732 for (size_t i = 0; i < page.entryCount; i++) {
734 cuEntries[cuIndices[page.entryIndex + i]];