Lines Matching full:relocation
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;
64 AArch64Relaxer(ArrayRef<Relocation> relocs);
65 bool tryRelaxAdrpAdd(const Relocation &adrpRel, const Relocation &addRel,
67 bool tryRelaxAdrpLdr(const Relocation &adrpRel, const Relocation &ldrRel,
183 error(getErrorLocation(loc) + "unknown relocation (" + Twine(type) + in getRelExpr()
243 // The following relocation types all point at instructions, and in getImplicitAddend()
247 // says: "If the relocation relocates an instruction the immediate in getImplicitAddend()
256 // shifted depending on the relocation type. in getImplicitAddend()
263 // once per relocation. in getImplicitAddend()
292 // relocation is intended for the case where it is not. in getImplicitAddend()
319 "cannot read addend for relocation " + toString(type)); in getImplicitAddend()
382 // R_AARCH64_JUMP26 relocation types. in needsThunk()
402 // +/- 128 MiB. The PLT32 relocation supports a range up to +/- 2 GiB. in inBranchRange()
430 // for a signed relocation, and update the opcode of a movn or movz instruction
449 void AArch64::relocate(uint8_t *loc, const Relocation &rel, in relocate()
486 // If val is wider than 32 bits, the relocation must have been moved from in relocate()
520 // transformation by placing a R_AARCH64_JUMP26 relocation at the offset of in relocate()
635 llvm_unreachable("unknown relocation"); in relocate()
639 void AArch64::relaxTlsGdToLe(uint8_t *loc, const Relocation &rel, in relaxTlsGdToLe()
641 // TLSDESC Global-Dynamic relocation are in the form: in relaxTlsGdToLe()
666 llvm_unreachable("unsupported relocation for TLS GD to LE relaxation"); in relaxTlsGdToLe()
670 void AArch64::relaxTlsGdToIe(uint8_t *loc, const Relocation &rel, in relaxTlsGdToIe()
672 // TLSDESC Global-Dynamic relocation are in the form: in relaxTlsGdToIe()
698 llvm_unreachable("unsupported relocation for TLS GD to LE relaxation"); in relaxTlsGdToIe()
702 void AArch64::relaxTlsIeToLe(uint8_t *loc, const Relocation &rel, in relaxTlsIeToLe()
718 llvm_unreachable("invalid relocation for TLS IE to LE relaxation"); in relaxTlsIeToLe()
721 AArch64Relaxer::AArch64Relaxer(ArrayRef<Relocation> relocs) { in AArch64Relaxer()
742 bool AArch64Relaxer::tryRelaxAdrpAdd(const Relocation &adrpRel, in tryRelaxAdrpAdd()
743 const Relocation &addRel, uint64_t secAddr, in tryRelaxAdrpAdd()
781 Relocation adrRel = {R_ABS, R_AARCH64_ADR_PREL_LO21, addRel.offset, in tryRelaxAdrpAdd()
791 bool AArch64Relaxer::tryRelaxAdrpLdr(const Relocation &adrpRel, in tryRelaxAdrpLdr()
792 const Relocation &ldrRel, uint64_t secAddr, in tryRelaxAdrpLdr()
847 Relocation adrpSymRel = {R_AARCH64_PAGE_PC, R_AARCH64_ADR_PREL_PG_HI21, in tryRelaxAdrpLdr()
849 Relocation addRel = {R_ABS, R_AARCH64_ADD_ABS_LO12_NC, ldrRel.offset, in tryRelaxAdrpLdr()
868 static bool needsGotForMemtag(const Relocation &rel) { in needsGotForMemtag()
880 const Relocation &rel = sec.relocs()[i]; in relocateAlloc()
951 // relocation, and a shared library refers to that symbol.
1047 // address may escape if referenced by a direct relocation. If relative in writePlt()