/freebsd-13-stable/contrib/llvm-project/lld/MachO/ |
H A D | MergedOutputSection.cpp | 35 for (InputSection *isec : inputs) { 36 isecAddr = alignTo(isecAddr, isec->align); 37 isecFileOff = alignTo(isecFileOff, isec->align); 38 isec->outSecOff = isecAddr - addr; 39 isec->outSecFileOff = isecFileOff - fileOff; 40 isecAddr += isec->getSize(); 41 isecFileOff += isec->getFileSize(); 48 for (InputSection *isec : inputs) { 49 isec->writeTo(buf + isec [all...] |
H A D | InputSection.cpp | 40 else if (auto *isec = r.target.dyn_cast<InputSection *>()) 41 va = isec->getVA();
|
H A D | Symbols.h | 61 Defined(StringRefZ name, InputSection *isec, uint32_t value) argument 62 : Symbol(DefinedKind, name), isec(isec), value(value) {} 64 InputSection *isec; member in class:lld::macho::Defined 105 return d->isec->getVA() + d->value; 111 return d->isec->getFileOffset() + d->value;
|
H A D | InputFiles.cpp | 136 InputSection *isec = make<InputSection>(); local 137 isec->file = this; 138 isec->name = StringRef(sec.sectname, strnlen(sec.sectname, 16)); 139 isec->segname = StringRef(sec.segname, strnlen(sec.segname, 16)); 140 isec->data = {isZeroFill(sec.flags) ? nullptr : buf + sec.offset, 144 isec->name + " is too large"); 146 isec->align = 1 << sec.align; 147 isec->flags = sec.flags; 148 subsections.push_back({{0, isec}}); 226 auto createDefined = [&](const structs::nlist_64 &sym, InputSection *isec, [all...] |
H A D | SyntheticSections.cpp | 191 OutputSegment *segA = a.isec->parent->parent; 192 OutputSegment *segB = b.isec->parent->parent; 195 OutputSection *osecA = a.isec->parent; 196 OutputSection *osecB = b.isec->parent; 199 if (a.isec != b.isec) 200 return a.isec->outSecOff < b.isec->outSecOff; 205 encodeBinding(*b.dysym, b.isec->parent, b.isec [all...] |
H A D | SymbolTable.h | 27 Symbol *addDefined(StringRef name, InputSection *isec, uint32_t value);
|
H A D | SyntheticSections.h | 99 const InputSection *isec; member in struct:lld::macho::BindingEntry 102 BindingEntry(const DylibSymbol *dysym, const InputSection *isec, argument 104 : dysym(dysym), isec(isec), offset(offset), addend(addend) {} 120 void addEntry(const DylibSymbol *dysym, const InputSection *isec, argument 122 bindings.emplace_back(dysym, isec, offset, addend);
|
H A D | SymbolTable.cpp | 39 Symbol *SymbolTable::addDefined(StringRef name, InputSection *isec, argument 48 replaceSymbol<Defined>(s, name, isec, value);
|
H A D | Writer.cpp | 249 for (InputSection *isec : inputSections) { 250 for (Reloc &r : isec->relocs) { 254 sys::path::filename(isec->file->getName())); 256 target->prepareSymbolRelocation(*s, isec, r); 322 size_t &priority = sectionPriorities[sym.isec]; 323 priority = std::max(priority, getSymbolPriority(entry, *sym.isec->file)); 424 for (InputSection *isec : inputSections) { 426 mergedOutputSections[{isec->segname, isec->name}]; 428 osec = make<MergedOutputSection>(isec [all...] |
/freebsd-13-stable/contrib/llvm-project/lld/ELF/ |
H A D | Thunks.cpp | 54 void addSymbols(ThunkSection &isec) override; 62 void addSymbols(ThunkSection &isec) override; 80 bool isCompatibleWith(const InputSection &isec, 110 bool isCompatibleWith(const InputSection &isec, 132 void addSymbols(ThunkSection &isec) override; 141 void addSymbols(ThunkSection &isec) override; 150 void addSymbols(ThunkSection &isec) override; 159 void addSymbols(ThunkSection &isec) override; 173 void addSymbols(ThunkSection &isec) override; 174 bool isCompatibleWith(const InputSection &isec, 245 PPC32PltCallStub(const InputSection &isec, const Relocation &rel, Symbol &dest) argument 371 addSymbols(ThunkSection &isec) argument 397 addSymbols(ThunkSection &isec) argument 441 isCompatibleWith(const InputSection &isec, const Relocation &rel) const argument 479 isCompatibleWith(const InputSection &isec, const Relocation &rel) const argument 497 addSymbols(ThunkSection &isec) argument 515 addSymbols(ThunkSection &isec) argument 536 addSymbols(ThunkSection &isec) argument 557 addSymbols(ThunkSection &isec) argument 572 addSymbols(ThunkSection &isec) argument 579 isCompatibleWith(const InputSection &isec, const Relocation &rel) const argument 598 addSymbols(ThunkSection &isec) argument 605 isCompatibleWith(const InputSection &isec, const Relocation &rel) const argument 628 addSymbols(ThunkSection &isec) argument 654 addSymbols(ThunkSection &isec) argument 672 addSymbols(ThunkSection &isec) argument 695 addSymbols(ThunkSection &isec) argument 719 addSymbols(ThunkSection &isec) argument 769 addSymbols(ThunkSection &isec) argument 783 isCompatibleWith(const InputSection &isec, const Relocation &rel) const argument 788 addSymbols(ThunkSection &isec) argument 832 addSymbols(ThunkSection &isec) argument 848 addSymbols(ThunkSection &isec) argument 860 addSymbols(ThunkSection &isec) argument 966 addThunkPPC32(const InputSection &isec, const Relocation &rel, Symbol &s) argument 993 addThunk(const InputSection &isec, Relocation &rel) argument [all...] |
H A D | ARMErrataFix.cpp | 195 // start of isec, return true if the destination of the branch is within the 197 static bool branchDestInFirstRegion(const InputSection *isec, uint64_t off, argument 199 uint64_t sourceAddr = isec->getVA(0) + off; 218 // Return true if a branch can reach a patch section placed after isec. 220 static bool patchInRange(const InputSection *isec, uint64_t off, argument 224 // after isec. As there can be more than one patch in the patch section we 228 isBcc(instr) ? R_ARM_THM_JUMP19 : R_ARM_THM_JUMP24, isec->getVA(off), 229 isec->getVA() + isec->getSize() + 0x100); 246 static ScanResult scanCortexA8Errata657417(InputSection *isec, uint64_ argument 405 implementPatch(ScanResult sr, InputSection *isec, std::vector<Patch657417Section *> &patches) argument [all...] |
H A D | Target.cpp | 97 auto *isec = cast<InputSection>(d); local 98 if (!isec->getParent() || (isec->type & SHT_NOBITS)) 103 ? (Out::bufferStart + isec->getParent()->offset + isec->outSecOff) 104 : isec->data().data(); 106 assert(isa<SyntheticSection>(isec) && "No data but not synthetic?"); 109 if (isecLoc <= loc && loc < isecLoc + isec->getSize()) 110 return {isec, isec [all...] |
H A D | AArch64ErrataFix.cpp | 332 // InputSection isec. We update Off in this function rather than in the caller 335 // Return the offset of the load or store instruction in isec that we want to 337 static uint64_t scanCortexA53Errata843419(InputSection *isec, uint64_t &off, argument 339 uint64_t isecAddr = isec->getVA(0); 354 const uint8_t *buf = isec->data().begin(); 497 for (const InputSection *isec : isd.sections) { 498 isecLimit = isec->outSecOff + isec->getSize(); 532 // InputSection isec, create a Patch843419 Section and add it to the 535 InputSection *isec, 534 implementPatch(uint64_t adrpAddr, uint64_t patcheeOffset, InputSection *isec, std::vector<Patch843419Section *> &patches) argument [all...] |
H A D | OutputSections.cpp | 90 // Record that isec will be placed in the OutputSection. isec does not become 97 // 3. Call commitSection(isec). 98 void OutputSection::recordSection(InputSectionBase *isec) { argument 99 partition = isec->partition; 100 isec->parent = this; 105 isd->sectionBases.push_back(isec); 109 // isec. Also check whether the InputSection flags and type are consistent with 111 void OutputSection::commitSection(InputSection *isec) { argument 114 // initialize type, entsize and flags from isec [all...] |
H A D | Thunks.h | 40 virtual void addSymbols(ThunkSection &isec) = 0; 70 Thunk *addThunk(const InputSection &isec, Relocation &rel);
|
H A D | EhFrame.cpp | 38 EhReader(InputSectionBase *s, ArrayRef<uint8_t> d) : isec(s), d(d) {} 45 isec->getObjMsg((const uint8_t *)loc - isec->data().data())); 54 InputSectionBase *isec; member in class:__anon2698::EhReader
|
H A D | MapFile.cpp | 181 for (InputSection *isec : isd->sections) { 182 if (auto *ehSec = dyn_cast<EhFrameSection>(isec)) { 187 writeHeader(os, isec->getVA(0), osec->getLMA() + isec->getOffset(0), 188 isec->getSize(), isec->alignment); 189 os << indent8 << toString(isec) << '\n'; 190 for (Symbol *sym : sectionSyms[isec])
|
H A D | Relocations.cpp | 107 if (errPlace.isec && errPlace.isec->name.startswith(".debug")) 1026 static void addRelativeReloc(InputSectionBase *isec, uint64_t offsetInSec, argument 1029 Partition &part = isec->getPartition(); 1037 if (part.relrDyn && isec->alignment >= 2 && offsetInSec % 2 == 0) { 1038 isec->relocations.push_back({expr, type, offsetInSec, addend, sym}); 1039 part.relrDyn->relocs.push_back({isec, offsetInSec}); 1042 part.relaDyn->addReloc(target->relativeRel, isec, offsetInSec, sym, addend, 1691 ThunkSection *ThunkCreator::getISDThunkSec(OutputSection *os, InputSection *isec, argument 1707 uint64_t thunkSecOff = isec 1719 getISThunkSec(InputSection *isec) argument 1858 getThunk(InputSection *isec, Relocation &rel, uint64_t src) argument [all...] |
H A D | Relocations.h | 148 ThunkSection *getISDThunkSec(OutputSection *os, InputSection *isec, 152 ThunkSection *getISThunkSec(InputSection *isec); 156 std::pair<Thunk *, bool> getThunk(InputSection *isec, Relocation &rel,
|
H A D | ICF.cpp | 436 static void combineRelocHashes(unsigned cnt, InputSection *isec, argument 438 uint32_t hash = isec->eqClass[cnt % 2]; 440 Symbol &s = isec->template getFile<ELFT>()->getRelocTargetSym(rel); 446 isec->eqClass[(cnt + 1) % 2] = hash | (1U << 31); 512 for (InputSection *isec : sections[i]->dependentSections) 513 isec->markDead(); 524 [](InputSection *isec) { return !isec->isLive(); });
|
H A D | OutputSections.h | 74 void recordSection(InputSectionBase *isec); 75 void commitSection(InputSection *isec);
|
H A D | Writer.cpp | 105 if (auto *isec = dyn_cast<InputSection>(s)) { 106 if (InputSectionBase *rel = isec->getRelocatedSection()) { 682 InputSection *isec = dyn_cast_or_null<InputSection>(s); local 683 if (!isec) 685 if (isec->type == SHT_REL) 686 markUsedLocalSymbolsImpl(f, isec->getDataAs<typename ELFT::Rel>()); 687 else if (isec->type == SHT_RELA) 688 markUsedLocalSymbolsImpl(f, isec->getDataAs<typename ELFT::Rela>()); 797 InputSectionBase *isec = cast<InputSectionDescription>(*i)->sections[0]; local 800 if (isec [all...] |
H A D | CallGraphSort.cpp | 106 auto getOrCreateNode = [&](const InputSectionBase *isec) -> int { 107 auto res = secToCluster.try_emplace(isec, clusters.size()); 109 sections.push_back(isec); 110 clusters.emplace_back(clusters.size(), isec->getSize());
|
H A D | LinkerScript.cpp | 587 static OutputSection *createSection(InputSectionBase *isec, argument 590 sec->recordSection(isec); 596 InputSectionBase *isec, StringRef outsecName) { 604 if (isec->type == SHT_GROUP || (isec->flags & SHF_GROUP)) 605 return createSection(isec, outsecName); 613 if (!isa<SyntheticSection>(isec) && 614 (isec->type == SHT_REL || isec->type == SHT_RELA)) { 615 auto *sec = cast<InputSection>(isec); 595 addInputSec(StringMap<TinyPtrVector<OutputSection *>> &map, InputSectionBase *isec, StringRef outsecName) argument [all...] |
H A D | MarkLive.cpp | 210 if (auto *isec = dyn_cast_or_null<InputSectionBase>(d->section)) 211 enqueue(isec, d->value); 285 for (InputSectionBase *isec : sec.dependentSections) 286 enqueue(isec, 0);
|