Lines Matching refs:isec
346 auto *isec = make<ConcatInputSection>( in parseSections() local
348 subsections.push_back({off, isec}); in parseSections()
359 InputSection *isec = in parseSections() local
362 cast<CStringInputSection>(isec)->splitIntoPieces(); in parseSections()
363 section.subsections.push_back({0, isec}); in parseSections()
368 InputSection *isec = make<WordLiteralInputSection>(section, data, align); in parseSections() local
369 section.subsections.push_back({0, isec}); in parseSections()
391 auto *isec = make<ConcatInputSection>(section, data, align); in parseSections() local
392 if (isDebugSection(isec->getFlags()) && in parseSections()
393 isec->getSegName() == segment_names::dwarf) { in parseSections()
397 debugSections.push_back(isec); in parseSections()
399 section.subsections.push_back({0, isec}); in parseSections()
461 return it->isec; in findContainingSubsection()
465 static Defined *findSymbolAtOffset(const ConcatInputSection *isec, in findSymbolAtOffset() argument
467 auto it = llvm::lower_bound(isec->symbols, off, [](Defined *d, uint64_t off) { in findSymbolAtOffset()
471 if (it == isec->symbols.end() || (*it)->value != off) { in findSymbolAtOffset()
472 assert(isec->wasCoalesced); in findSymbolAtOffset()
602 subsecIt->offset + subsecIt->isec->getSize() <= r.offset) { in parseRelocations()
608 subsec = subsecIt->isec; in parseRelocations()
644 InputSection *isec, uint64_t value, in createDefined() argument
704 name, isec->getFile(), isec, value, size, sym.n_desc & N_WEAK_DEF, in createDefined()
709 bool includeInSymtab = !isPrivateLabel(name) && !isEhFrameSection(isec); in createDefined()
711 name, isec->getFile(), isec, value, size, sym.n_desc & N_WEAK_DEF, in createDefined()
828 InputSection *isec = in parseSymbols() local
836 createDefined(sym, name, isec, 0, isec->getSize(), forceHidden); in parseSymbols()
867 InputSection *isec = subsec.isec; in parseSymbols() local
874 : isec->data.size() - symbolOffset; in parseSymbols()
883 sym.n_desc & N_ALT_ENTRY || !isa<ConcatInputSection>(isec)) { in parseSymbols()
884 isec->hasAltEntry = symbolOffset != 0; in parseSymbols()
894 symbols[symIndex] = createDefined(sym, name, isec, symbolOffset, in parseSymbols()
898 auto *concatIsec = cast<ConcatInputSection>(isec); in parseSymbols()
902 if (isZeroFill(isec->getFlags())) { in parseSymbols()
904 nextIsec->data = {nullptr, isec->data.size() - symbolOffset}; in parseSymbols()
905 isec->data = {nullptr, symbolOffset}; in parseSymbols()
907 nextIsec->data = isec->data.slice(symbolOffset); in parseSymbols()
908 isec->data = isec->data.slice(0, symbolOffset); in parseSymbols()
942 ConcatInputSection *isec = make<ConcatInputSection>(section, data); in OpaqueFile() local
943 isec->live = true; in OpaqueFile()
944 section.subsections.push_back({0, isec}); in OpaqueFile()
1109 ConcatInputSection *isec = cast<ConcatInputSection>(subsection.isec); in registerCompactUnwind() local
1130 isec->data = isec->data.slice(target->wordSize, 8 + target->wordSize); in registerCompactUnwind()
1131 uint32_t encoding = read32le(isec->data.data() + sizeof(uint32_t)); in registerCompactUnwind()
1140 for (auto it = isec->relocs.begin(); it != isec->relocs.end();) { in registerCompactUnwind()
1156 referentIsec = cast<ConcatInputSection>(sym->isec); in registerCompactUnwind()
1167 error(isec->getLocation(r.offset) + " references section " + in registerCompactUnwind()
1177 d->unwindEntry = isec; in registerCompactUnwind()
1195 it = isec->relocs.erase(it); in registerCompactUnwind()
1221 static CIE parseCIE(const InputSection *isec, const EhReader &reader, in parseCIE() argument
1275 llvm::find_if(isec->relocs, [=](const macho::Reloc &r) { in parseCIE()
1278 if (personalityRelocIt == isec->relocs.end()) in parseCIE()
1319 targetSymFromCanonicalSubtractor(const InputSection *isec, in targetSymFromCanonicalSubtractor() argument
1337 if (pcSym->isec == isec) { in targetSymFromCanonicalSubtractor()
1348 pcReloc.referent = isec->symbols[0]; in targetSymFromCanonicalSubtractor()
1349 assert(isec->symbols[0]->value == 0); in targetSymFromCanonicalSubtractor()
1358 auto *isec = cast<ConcatInputSection>(findContainingSubsection(*sec, &addr)); in findSymbolAtAddress() local
1359 return findSymbolAtOffset(isec, addr); in findSymbolAtAddress()
1379 auto *isec = cast<ConcatInputSection>(subsec.isec); in registerEhFrames() local
1385 if (isec->symbols.size() == 0) in registerEhFrames()
1386 make<Defined>("EH_Frame", isec->getFile(), isec, /*value=*/0, in registerEhFrames()
1387 isec->getSize(), /*isWeakDef=*/false, /*isExternal=*/false, in registerEhFrames()
1391 else if (isec->symbols[0]->value != 0) in registerEhFrames()
1394 EhReader reader(this, isec->data, subsec.offset); in registerEhFrames()
1401 EhRelocator ehRelocator(isec); in registerEhFrames()
1403 isec->relocs, [=](const Reloc &r) { return r.offset == cieOffOff; }); in registerEhFrames()
1405 if (cieOffRelocIt != isec->relocs.end()) { in registerEhFrames()
1408 targetSymFromCanonicalSubtractor</*Invert=*/true>(isec, cieOffRelocIt) in registerEhFrames()
1409 ->isec; in registerEhFrames()
1417 cieIsec = isec; in registerEhFrames()
1424 if (cieIsec != isec) in registerEhFrames()
1428 if (cieIsec == isec) { in registerEhFrames()
1429 cieMap[cieIsec] = parseCIE(isec, reader, dataOff); in registerEhFrames()
1452 auto funcAddrRelocIt = isec->relocs.end(); in registerEhFrames()
1453 auto lsdaAddrRelocIt = isec->relocs.end(); in registerEhFrames()
1454 for (auto it = isec->relocs.begin(); it != isec->relocs.end(); ++it) { in registerEhFrames()
1462 if (funcAddrRelocIt != isec->relocs.end()) { in registerEhFrames()
1463 funcSym = targetSymFromCanonicalSubtractor(isec, funcAddrRelocIt); in registerEhFrames()
1469 if (funcSym->isec) in registerEhFrames()
1470 funcSym = findSymbolAtOffset(cast<ConcatInputSection>(funcSym->isec), in registerEhFrames()
1480 isec->live = false; in registerEhFrames()
1485 if (lsdaAddrRelocIt != isec->relocs.end()) { in registerEhFrames()
1486 lsdaIsec = targetSymFromCanonicalSubtractor(isec, lsdaAddrRelocIt)->isec; in registerEhFrames()
1495 fdes[isec] = {funcLength, cie.personalitySymbol, lsdaIsec}; in registerEhFrames()
1496 funcSym->unwindEntry = isec; in registerEhFrames()