Lines Matching refs:entries
606 // increase numEntries by the number of entries used to emit
621 // Global Dynamic TLS entries take two GOT slots.
626 // Reserves TLS entries for a TLS module ID and a TLS block offset.
716 // If there are relocation-only entries in the GOT, TLS entries
717 // are allocated after them. TLS entries should be addressable
718 // by 16-bit index so count both reloc-only and TLS entries.
836 // entry for the same symbol. And add local entries which indexed
837 // using 32-bit value at the end of 16-bit entries.
846 // Evaluate number of "reloc-only" entries in the resulting GOT.
847 // To do that put all unique "reloc-only" and "global" entries
856 // Evaluate number of "page" entries in each GOT.
898 // Reduce number of "reloc-only" entries in the primary GOT
899 // by subtracting "global" entries in the primary GOT.
912 // and save into pagesMap an upper bound of MIPS GOT entries required
943 // Create dynamic relocations for TLS entries.
975 // entries in the primary GOT.
979 // Dynamic relocations for "global" entries.
986 // Dynamic relocations for "local" entries in case of PIC.
1043 // Write 'page address' entries to the local part of the GOT.
1051 // Local, global, TLS, reloc-only entries.
1098 assert(sym.pltIndex == entries.size());
1099 entries.push_back(&sym);
1103 return (target->gotPltHeaderEntriesNum + entries.size()) * config->wordsize;
1109 for (const Symbol *b : entries) {
1118 return !entries.empty() || hasGotPltOffRel;
1142 assert(sym.pltIndex == entries.size());
1143 entries.push_back(&sym);
1147 return entries.size() * config->wordsize;
1151 for (const Symbol *b : entries) {
1188 // Returns the number of entries in .gnu.version_d: the number of
1211 entries.push_back({tag, fn});
1216 entries.push_back({tag, [=] { return val; }});
1221 entries.push_back({tag, [=] { return sec->getVA(0); }});
1226 size_t tagOffset = entries.size() * entsize;
1227 entries.push_back(
1233 entries.push_back({tag, [=] { return sec->addr; }});
1238 entries.push_back({tag, [=] { return sec->size; }});
1243 entries.push_back({tag, [=] { return sym->getVA(); }});
1277 // Add remaining entries to complete .dynamic contents.
1359 entries.push_back({part.relaDyn->sizeDynamicTag, addRelaSz(part.relaDyn)});
1390 entries.push_back({DT_PLTRELSZ, addPltRelSz});
1491 entries.push_back({DT_PPC64_GLINK, [=] {
1500 this->size = entries.size() * this->entsize;
1506 for (std::pair<int32_t, std::function<uint64_t()>> &kv : entries) {
1709 // apart from one another. These generally correspond to vtable entries. The
1884 // The encoded sequence of Elf64_Relr entries in a SHT_RELR section looks
1888 // entry encodes 1 relocation. The subsequent bitmap entries encode up to 63
1891 // The bitmap entries must have 1 in the least significant bit. The assumption
1986 // Sort entries related to non-local preemptible symbols by GOT indexes.
1987 // All other entries go to the beginning of a dynsym in arbitrary order.
2028 // sort symbol entries in this function. (For .dynsym, we don't do that because
2418 numEntries += symTab->getNumSymbols(); // The chain entries.
2466 // modify the instructions in the PLT entries.
2477 for (const Symbol *sym : entries) {
2484 sym.pltIndex = entries.size();
2485 entries.push_back(&sym);
2489 return headerSize + entries.size() * target->pltEntrySize;
2494 return !entries.empty() || (config->zRetpolineplt && in.iplt->isNeeded());
2503 for (size_t i = 0; i < entries.size(); ++i) {
2519 for (const Symbol *sym : entries) {
2526 return entries.size() * target->ipltEntrySize;
2530 sym.pltIndex = entries.size();
2531 entries.push_back(&sym);
2537 for (size_t i = 0, e = entries.size(); i != e; ++i) {
2549 writePPC32GlinkSection(buf, entries.size());
2553 return headerSize + entries.size() * target->pltEntrySize + footerSize;
2580 // Since you can indirectly jump to a PLT entry, we have to make PLT entries
2585 // In order to deal with the issue, we split a PLT entry into two PLT entries.
2761 for (ArrayRef<NameAttrEntry> entries : nameAttrs) {
2762 for (const NameAttrEntry &ent : entries) {
3303 // as we do not have relocation sections for linker generated table entries
3304 // and we would have to erase at a late stage relocations from merged entries.
3324 // EXIDX_CANTUNWIND entries are represented by nullptr as they do not have an
3345 // consecutive identical entries are rare and the effort to check that they
3356 // All table entries in this .ARM.exidx Section can be merged into the
3362 // functions the table describes. Optionally duplicate adjacent table entries
3366 // .ARM.exidx table entries are removed from it.
3402 // Optionally merge adjacent duplicate entries.
3578 entry_index.try_emplace(std::make_pair(sym, addend), entries.size());
3581 entries.emplace_back(sym, addend);
3586 return entries.size() * 8;
3596 for (auto entry : entries) {
3615 return !finalized || !entries.empty();