Lines Matching refs:rel
50 void relocate(uint8_t *loc, const Relocation &rel,
56 void relaxTlsGdToLe(uint8_t *loc, const Relocation &rel, uint64_t val) const;
57 void relaxTlsGdToIe(uint8_t *loc, const Relocation &rel, uint64_t val) const;
58 void relaxTlsIeToLe(uint8_t *loc, const Relocation &rel, uint64_t val) const;
449 void AArch64::relocate(uint8_t *loc, const Relocation &rel, in relocate() argument
451 switch (rel.type) { in relocate()
454 checkIntUInt(loc, val, 16, rel); in relocate()
459 checkIntUInt(loc, val, 32, rel); in relocate()
464 checkInt(loc, val, 32, rel); in relocate()
475 if (rel.sym && rel.sym->isTagged() && in relocate()
476 (rel.addend < 0 || in relocate()
477 rel.addend >= static_cast<int64_t>(rel.sym->getSize()))) in relocate()
478 write64(loc, -rel.addend); in relocate()
505 checkInt(loc, val, 33, rel); in relocate()
511 checkInt(loc, val, 21, rel); in relocate()
525 checkInt(loc, val, 28, rel); in relocate()
531 checkAlignment(loc, val, 4, rel); in relocate()
532 checkInt(loc, val, 21, rel); in relocate()
541 checkAlignment(loc, val, 2, rel); in relocate()
546 checkAlignment(loc, val, 4, rel); in relocate()
554 checkAlignment(loc, val, 8, rel); in relocate()
559 checkAlignment(loc, val, 16, rel); in relocate()
563 checkAlignment(loc, val, 8, rel); in relocate()
567 checkUInt(loc, val, 16, rel); in relocate()
573 checkUInt(loc, val, 32, rel); in relocate()
579 checkUInt(loc, val, 48, rel); in relocate()
592 checkInt(loc, val, 17, rel); in relocate()
601 checkInt(loc, val, 33, rel); in relocate()
610 checkInt(loc, val, 49, rel); in relocate()
619 checkInt(loc, val, 16, rel); in relocate()
623 checkUInt(loc, val, 24, rel); in relocate()
639 void AArch64::relaxTlsGdToLe(uint8_t *loc, const Relocation &rel, in relaxTlsGdToLe() argument
652 checkUInt(loc, val, 32, rel); in relaxTlsGdToLe()
654 switch (rel.type) { in relaxTlsGdToLe()
670 void AArch64::relaxTlsGdToIe(uint8_t *loc, const Relocation &rel, in relaxTlsGdToIe() argument
684 switch (rel.type) { in relaxTlsGdToIe()
702 void AArch64::relaxTlsIeToLe(uint8_t *loc, const Relocation &rel, in relaxTlsIeToLe() argument
704 checkUInt(loc, val, 32, rel); in relaxTlsIeToLe()
706 if (rel.type == R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21) { in relaxTlsIeToLe()
712 if (rel.type == R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC) { in relaxTlsIeToLe()
868 static bool needsGotForMemtag(const Relocation &rel) { in needsGotForMemtag() argument
869 return rel.sym->isTagged() && needsGot(rel.expr); in needsGotForMemtag()
880 const Relocation &rel = sec.relocs()[i]; in relocateAlloc() local
881 uint8_t *loc = buf + rel.offset; in relocateAlloc()
883 sec.getRelocTargetVA(sec.file, rel.type, rel.addend, in relocateAlloc()
884 secAddr + rel.offset, *rel.sym, rel.expr); in relocateAlloc()
886 if (needsGotForMemtag(rel)) { in relocateAlloc()
887 relocate(loc, rel, val); in relocateAlloc()
891 switch (rel.expr) { in relocateAlloc()
894 relaxer.tryRelaxAdrpLdr(rel, sec.relocs()[i + 1], secAddr, buf)) { in relocateAlloc()
901 relaxer.tryRelaxAdrpAdd(rel, sec.relocs()[i + 1], secAddr, buf)) { in relocateAlloc()
908 relaxTlsGdToIe(loc, rel, val); in relocateAlloc()
911 relaxTlsGdToLe(loc, rel, val); in relocateAlloc()
914 relaxTlsIeToLe(loc, rel, val); in relocateAlloc()
919 relocate(loc, rel, val); in relocateAlloc()
1096 for (const typename ELFT::Rela &rel : rels.relas) { in addTaggedSymbolReferences() local
1097 Symbol &sym = sec.file->getRelocTargetSym(rel); in addTaggedSymbolReferences()