Lines Matching refs:isec

368         auto *isec = make<ConcatInputSection>(  in parseSections()  local
370 subsections.push_back({off, isec}); in parseSections()
381 InputSection *isec = in parseSections() local
384 cast<CStringInputSection>(isec)->splitIntoPieces(); in parseSections()
385 section.subsections.push_back({0, isec}); in parseSections()
390 InputSection *isec = make<WordLiteralInputSection>(section, data, align); in parseSections() local
391 section.subsections.push_back({0, isec}); in parseSections()
413 auto *isec = make<ConcatInputSection>(section, data, align); in parseSections() local
414 if (isDebugSection(isec->getFlags()) && in parseSections()
415 isec->getSegName() == segment_names::dwarf) { in parseSections()
419 debugSections.push_back(isec); in parseSections()
421 section.subsections.push_back({0, isec}); in parseSections()
483 return it->isec; in findContainingSubsection()
487 static Defined *findSymbolAtOffset(const ConcatInputSection *isec, in findSymbolAtOffset() argument
489 auto it = llvm::lower_bound(isec->symbols, off, [](Defined *d, uint64_t off) { in findSymbolAtOffset()
493 if (it == isec->symbols.end() || (*it)->value != off) { in findSymbolAtOffset()
494 assert(isec->wasCoalesced); in findSymbolAtOffset()
624 subsecIt->offset + subsecIt->isec->getSize() <= r.offset) { in parseRelocations()
630 subsec = subsecIt->isec; in parseRelocations()
660 InputSection *isec, uint64_t value, in createDefined() argument
722 name, isec->getFile(), isec, value, size, sym.n_desc & N_WEAK_DEF, in createDefined()
726 bool includeInSymtab = !isPrivateLabel(name) && !isEhFrameSection(isec); in createDefined()
728 name, isec->getFile(), isec, value, size, sym.n_desc & N_WEAK_DEF, in createDefined()
846 InputSection *isec = in parseSymbols() local
854 createDefined(sym, name, isec, 0, isec->getSize(), forceHidden); in parseSymbols()
882 InputSection *isec = subsec.isec; in parseSymbols() local
889 : isec->data.size() - symbolOffset; in parseSymbols()
898 sym.n_desc & N_ALT_ENTRY || !isa<ConcatInputSection>(isec)) { in parseSymbols()
899 isec->hasAltEntry = symbolOffset != 0; in parseSymbols()
900 symbols[symIndex] = createDefined(sym, name, isec, symbolOffset, in parseSymbols()
904 auto *concatIsec = cast<ConcatInputSection>(isec); in parseSymbols()
908 if (isZeroFill(isec->getFlags())) { in parseSymbols()
910 nextIsec->data = {nullptr, isec->data.size() - symbolOffset}; in parseSymbols()
911 isec->data = {nullptr, symbolOffset}; in parseSymbols()
913 nextIsec->data = isec->data.slice(symbolOffset); in parseSymbols()
914 isec->data = isec->data.slice(0, symbolOffset); in parseSymbols()
948 ConcatInputSection *isec = make<ConcatInputSection>(section, data); in OpaqueFile() local
949 isec->live = true; in OpaqueFile()
950 section.subsections.push_back({0, isec}); in OpaqueFile()
1126 ConcatInputSection *isec = cast<ConcatInputSection>(subsection.isec); in registerCompactUnwind() local
1147 isec->data = isec->data.slice(target->wordSize, 8 + target->wordSize); in registerCompactUnwind()
1148 uint32_t encoding = read32le(isec->data.data() + sizeof(uint32_t)); in registerCompactUnwind()
1157 for (auto it = isec->relocs.begin(); it != isec->relocs.end();) { in registerCompactUnwind()
1173 referentIsec = cast<ConcatInputSection>(sym->isec()); in registerCompactUnwind()
1184 error(isec->getLocation(r.offset) + " references section " + in registerCompactUnwind()
1194 d->originalUnwindEntry = isec; in registerCompactUnwind()
1212 it = isec->relocs.erase(it); in registerCompactUnwind()
1238 static CIE parseCIE(const InputSection *isec, const EhReader &reader, in parseCIE() argument
1291 const auto *personalityReloc = isec->getRelocAt(personalityAddrOff); in parseCIE()
1333 targetSymFromCanonicalSubtractor(const InputSection *isec, in targetSymFromCanonicalSubtractor() argument
1351 if (pcSym->isec() == isec) { in targetSymFromCanonicalSubtractor()
1362 pcReloc.referent = isec->symbols[0]; in targetSymFromCanonicalSubtractor()
1363 assert(isec->symbols[0]->value == 0); in targetSymFromCanonicalSubtractor()
1372 auto *isec = cast<ConcatInputSection>(findContainingSubsection(*sec, &addr)); in findSymbolAtAddress() local
1373 return findSymbolAtOffset(isec, addr); in findSymbolAtAddress()
1393 auto *isec = cast<ConcatInputSection>(subsec.isec); in registerEhFrames() local
1399 if (isec->symbols.size() == 0) in registerEhFrames()
1400 make<Defined>("EH_Frame", isec->getFile(), isec, /*value=*/0, in registerEhFrames()
1401 isec->getSize(), /*isWeakDef=*/false, /*isExternal=*/false, in registerEhFrames()
1405 else if (isec->symbols[0]->value != 0) in registerEhFrames()
1408 EhReader reader(this, isec->data, subsec.offset); in registerEhFrames()
1415 EhRelocator ehRelocator(isec); in registerEhFrames()
1417 isec->relocs, [=](const Reloc &r) { return r.offset == cieOffOff; }); in registerEhFrames()
1419 if (cieOffRelocIt != isec->relocs.end()) { in registerEhFrames()
1422 targetSymFromCanonicalSubtractor</*Invert=*/true>(isec, cieOffRelocIt) in registerEhFrames()
1423 ->isec(); in registerEhFrames()
1431 cieIsec = isec; in registerEhFrames()
1438 if (cieIsec != isec) in registerEhFrames()
1442 if (cieIsec == isec) { in registerEhFrames()
1443 cieMap[cieIsec] = parseCIE(isec, reader, dataOff); in registerEhFrames()
1466 auto funcAddrRelocIt = isec->relocs.end(); in registerEhFrames()
1467 auto lsdaAddrRelocIt = isec->relocs.end(); in registerEhFrames()
1468 for (auto it = isec->relocs.begin(); it != isec->relocs.end(); ++it) { in registerEhFrames()
1476 if (funcAddrRelocIt != isec->relocs.end()) { in registerEhFrames()
1477 funcSym = targetSymFromCanonicalSubtractor(isec, funcAddrRelocIt); in registerEhFrames()
1483 if (funcSym->isec()) in registerEhFrames()
1484 funcSym = findSymbolAtOffset(cast<ConcatInputSection>(funcSym->isec()), in registerEhFrames()
1494 isec->live = false; in registerEhFrames()
1499 if (lsdaAddrRelocIt != isec->relocs.end()) { in registerEhFrames()
1501 targetSymFromCanonicalSubtractor(isec, lsdaAddrRelocIt)->isec(); in registerEhFrames()
1510 fdes[isec] = {funcLength, cie.personalitySymbol, lsdaIsec}; in registerEhFrames()
1511 funcSym->originalUnwindEntry = isec; in registerEhFrames()