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