Lines Matching defs:fde
409 Defined *EhFrameSection::isFdeLive(EhSectionPiece &fde, ArrayRef<RelTy> rels) {
410 auto *sec = cast<EhInputSection>(fde.sec);
411 unsigned firstRelI = fde.firstRelocation;
441 for (EhSectionPiece &fde : sec->fdes) {
442 uint32_t id = endian::read32<ELFT::Endianness>(fde.data().data() + 4);
443 CieRecord *rec = offsetToCie[fde.inputOff + 4 - id];
447 if (!isFdeLive<ELFT>(fde, rels))
449 rec->fdes.push_back(&fde);
475 for (EhSectionPiece &fde : sec.fdes) {
476 uint32_t id = endian::read32<ELFT::Endianness>(fde.data().data() + 4);
477 if (!ciesWithLSDA.contains(fde.inputOff + 4 - id))
481 if (Defined *d = isFdeLive<ELFT>(fde, rels))
537 for (EhSectionPiece *fde : rec->fdes) {
538 fde->outputOff = off;
539 off += fde->size;
544 // Call Frame Information records. glibc unwind-dw2-fde.c
562 for (EhSectionPiece *fde : rec->fdes) {
563 uint64_t pc = getFdePc(buf, fde->outputOff, enc);
564 uint64_t fdeVA = getParent()->addr + fde->outputOff;
566 errorOrWarn(toString(fde->sec) + ": PC offset is too large: 0x" +
630 for (EhSectionPiece *fde : rec->fdes) {
631 size_t off = fde->outputOff;
632 writeCieFde(buf + off, fde->data());
3647 for (FdeData &fde : fdes) {
3648 write32(buf, fde.pcRel);
3649 write32(buf + 4, fde.fdeVARel);