Lines Matching defs:fde
418 Defined *EhFrameSection::isFdeLive(EhSectionPiece &fde, ArrayRef<RelTy> rels) {
419 auto *sec = cast<EhInputSection>(fde.sec);
420 unsigned firstRelI = fde.firstRelocation;
450 for (EhSectionPiece &fde : sec->fdes) {
451 uint32_t id = endian::read32<ELFT::Endianness>(fde.data().data() + 4);
452 CieRecord *rec = offsetToCie[fde.inputOff + 4 - id];
456 if (!isFdeLive<ELFT>(fde, rels))
458 rec->fdes.push_back(&fde);
484 for (EhSectionPiece &fde : sec.fdes) {
485 uint32_t id = endian::read32<ELFT::Endianness>(fde.data().data() + 4);
486 if (!ciesWithLSDA.contains(fde.inputOff + 4 - id))
490 if (Defined *d = isFdeLive<ELFT>(fde, rels))
546 for (EhSectionPiece *fde : rec->fdes) {
547 fde->outputOff = off;
548 off += fde->size;
553 // Call Frame Information records. glibc unwind-dw2-fde.c
571 for (EhSectionPiece *fde : rec->fdes) {
572 uint64_t pc = getFdePc(buf, fde->outputOff, enc);
573 uint64_t fdeVA = getParent()->addr + fde->outputOff;
575 Err(ctx) << fde->sec << ": PC offset is too large: 0x"
641 for (EhSectionPiece *fde : rec->fdes) {
642 size_t off = fde->outputOff;
643 writeCieFde(ctx, buf + off, fde->data());
3721 for (FdeData &fde : fdes) {
3722 write32(ctx, buf, fde.pcRel);
3723 write32(ctx, buf + 4, fde.fdeVARel);