reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/lld/ELF/ARMErrataFix.cpp
  425     RelType patchRelType = R_ARM_THM_JUMP24;
  455     RelType type;
tools/lld/ELF/Arch/AArch64.cpp
   35   RelExpr getRelExpr(RelType type, const Symbol &s,
   37   RelType getDynRel(RelType type) const override;
   37   RelType getDynRel(RelType type) const override;
   42   bool needsThunk(RelExpr expr, RelType type, const InputFile *file,
   45   bool inBranchRange(RelType type, uint64_t src, uint64_t dst) const override;
   46   bool usesOnlyLowPageBits(RelType type) const override;
   47   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   48   RelExpr adjustRelaxExpr(RelType type, const uint8_t *data,
   50   void relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const override;
   51   void relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const override;
   52   void relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const override;
   77 RelExpr AArch64::getRelExpr(RelType type, const Symbol &s,
  156 RelExpr AArch64::adjustRelaxExpr(RelType type, const uint8_t *data,
  166 bool AArch64::usesOnlyLowPageBits(RelType type) const {
  184 RelType AArch64::getDynRel(RelType type) const {
  184 RelType AArch64::getDynRel(RelType type) const {
  232 bool AArch64::needsThunk(RelExpr expr, RelType type, const InputFile *file,
  250 bool AArch64::inBranchRange(RelType type, uint64_t src, uint64_t dst) const {
  305 void AArch64::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
  451 void AArch64::relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const {
  481 void AArch64::relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const {
  512 void AArch64::relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const {
tools/lld/ELF/Arch/AMDGPU.cpp
   29   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   30   RelExpr getRelExpr(RelType type, const Symbol &s,
   32   RelType getDynRel(RelType type) const override;
   32   RelType getDynRel(RelType type) const override;
   61 void AMDGPU::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
   83 RelExpr AMDGPU::getRelExpr(RelType type, const Symbol &s,
  105 RelType AMDGPU::getDynRel(RelType type) const {
  105 RelType AMDGPU::getDynRel(RelType type) const {
tools/lld/ELF/Arch/ARM.cpp
   30   RelExpr getRelExpr(RelType type, const Symbol &s,
   32   RelType getDynRel(RelType type) const override;
   32   RelType getDynRel(RelType type) const override;
   33   int64_t getImplicitAddend(const uint8_t *buf, RelType type) const override;
   41   bool needsThunk(RelExpr expr, RelType type, const InputFile *file,
   44   bool inBranchRange(RelType type, uint64_t src, uint64_t dst) const override;
   45   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   83 RelExpr ARM::getRelExpr(RelType type, const Symbol &s,
  147 RelType ARM::getDynRel(RelType type) const {
  147 RelType ARM::getDynRel(RelType type) const {
  264 bool ARM::needsThunk(RelExpr expr, RelType type, const InputFile *file,
  335 bool ARM::inBranchRange(RelType type, uint64_t src, uint64_t dst) const {
  378 void ARM::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
  521 int64_t ARM::getImplicitAddend(const uint8_t *buf, RelType type) const {
tools/lld/ELF/Arch/AVR.cpp
   47   RelExpr getRelExpr(RelType type, const Symbol &s,
   49   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   55 RelExpr AVR::getRelExpr(RelType type, const Symbol &s,
   60 void AVR::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
tools/lld/ELF/Arch/Hexagon.cpp
   31   RelExpr getRelExpr(RelType type, const Symbol &s,
   33   RelType getDynRel(RelType type) const override;
   33   RelType getDynRel(RelType type) const override;
   34   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   88 RelExpr Hexagon::getRelExpr(RelType type, const Symbol &s,
  205 void Hexagon::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
  320 RelType Hexagon::getDynRel(RelType type) const {
  320 RelType Hexagon::getDynRel(RelType type) const {
tools/lld/ELF/Arch/MSP430.cpp
   37   RelExpr getRelExpr(RelType type, const Symbol &s,
   39   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   48 RelExpr MSP430::getRelExpr(RelType type, const Symbol &s,
   63 void MSP430::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
tools/lld/ELF/Arch/Mips.cpp
   29   RelExpr getRelExpr(RelType type, const Symbol &s,
   31   int64_t getImplicitAddend(const uint8_t *buf, RelType type) const override;
   32   RelType getDynRel(RelType type) const override;
   32   RelType getDynRel(RelType type) const override;
   37   bool needsThunk(RelExpr expr, RelType type, const InputFile *file,
   39   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   40   bool usesOnlyLowPageBits(RelType type) const override;
   78 RelExpr MIPS<ELFT>::getRelExpr(RelType type, const Symbol &s,
  189 template <class ELFT> RelType MIPS<ELFT>::getDynRel(RelType type) const {
  189 template <class ELFT> RelType MIPS<ELFT>::getDynRel(RelType type) const {
  347 bool MIPS<ELFT>::needsThunk(RelExpr expr, RelType type, const InputFile *file,
  370 int64_t MIPS<ELFT>::getImplicitAddend(const uint8_t *buf, RelType type) const {
  441 calculateMipsRelChain(uint8_t *loc, RelType type, uint64_t val) {
  454   RelType type2 = (type >> 8) & 0xff;
  455   RelType type3 = (type >> 16) & 0xff;
  467 static bool isBranchReloc(RelType type) {
  472 static bool isMicroBranchReloc(RelType type) {
  478 static uint64_t fixupCrossModeJump(uint8_t *loc, RelType type, uint64_t val) {
  527 void MIPS<ELFT>::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
  715 template <class ELFT> bool MIPS<ELFT>::usesOnlyLowPageBits(RelType type) const {
tools/lld/ELF/Arch/PPC.cpp
   27   RelExpr getRelExpr(RelType type, const Symbol &s,
   29   RelType getDynRel(RelType type) const override;
   29   RelType getDynRel(RelType type) const override;
   39   bool needsThunk(RelExpr expr, RelType relocType, const InputFile *file,
   42   bool inBranchRange(RelType type, uint64_t src, uint64_t dst) const override;
   43   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   44   RelExpr adjustRelaxExpr(RelType type, const uint8_t *data,
   46   int getTlsGdRelaxSkip(RelType type) const override;
   47   void relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const override;
   48   void relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const override;
   49   void relaxTlsLdToLe(uint8_t *loc, RelType type, uint64_t val) const override;
   50   void relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const override;
  171 bool PPC::needsThunk(RelExpr expr, RelType type, const InputFile *file,
  184 bool PPC::inBranchRange(RelType type, uint64_t src, uint64_t dst) const {
  191 RelExpr PPC::getRelExpr(RelType type, const Symbol &s,
  244 RelType PPC::getDynRel(RelType type) const {
  244 RelType PPC::getDynRel(RelType type) const {
  250 static std::pair<RelType, uint64_t> fromDTPREL(RelType type, uint64_t val) {
  250 static std::pair<RelType, uint64_t> fromDTPREL(RelType type, uint64_t val) {
  268 void PPC::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
  269   RelType newType;
  336 RelExpr PPC::adjustRelaxExpr(RelType type, const uint8_t *data,
  345 int PPC::getTlsGdRelaxSkip(RelType type) const {
  359 void PPC::relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const {
  377 void PPC::relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const {
  392 void PPC::relaxTlsLdToLe(uint8_t *loc, RelType type, uint64_t val) const {
  415 void PPC::relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const {
tools/lld/ELF/Arch/PPC64.cpp
  102 bool isPPC64SmallCodeModelTocReloc(RelType type) {
  157 bool tryRelaxPPC64TocIndirection(RelType type, const Relocation &rel,
  197   int getTlsGdRelaxSkip(RelType type) const override;
  199   RelExpr getRelExpr(RelType type, const Symbol &s,
  201   RelType getDynRel(RelType type) const override;
  201   RelType getDynRel(RelType type) const override;
  205   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
  207   bool needsThunk(RelExpr expr, RelType type, const InputFile *file,
  210   bool inBranchRange(RelType type, uint64_t src, uint64_t dst) const override;
  211   RelExpr adjustRelaxExpr(RelType type, const uint8_t *data,
  213   void relaxGot(uint8_t *loc, RelType type, uint64_t val) const override;
  214   void relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const override;
  215   void relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const override;
  216   void relaxTlsLdToLe(uint8_t *loc, RelType type, uint64_t val) const override;
  217   void relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const override;
  329 int PPC64::getTlsGdRelaxSkip(RelType type) const {
  362 void PPC64::relaxGot(uint8_t *loc, RelType type, uint64_t val) const {
  383 void PPC64::relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const {
  422 void PPC64::relaxTlsLdToLe(uint8_t *loc, RelType type, uint64_t val) const {
  487 void PPC64::relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const {
  537 RelExpr PPC64::getRelExpr(RelType type, const Symbol &s,
  637 RelType PPC64::getDynRel(RelType type) const {
  637 RelType PPC64::getDynRel(RelType type) const {
  678 static std::pair<RelType, uint64_t> toAddr16Rel(RelType type, uint64_t val) {
  678 static std::pair<RelType, uint64_t> toAddr16Rel(RelType type, uint64_t val) {
  750 static bool isTocOptType(RelType type) {
  763 void PPC64::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
  767   RelType originalType = type;
  900 bool PPC64::needsThunk(RelExpr expr, RelType type, const InputFile *file,
  930 bool PPC64::inBranchRange(RelType type, uint64_t src, uint64_t dst) const {
  939 RelExpr PPC64::adjustRelaxExpr(RelType type, const uint8_t *data,
  965 void PPC64::relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const {
tools/lld/ELF/Arch/RISCV.cpp
   32   RelType getDynRel(RelType type) const override;
   32   RelType getDynRel(RelType type) const override;
   33   RelExpr getRelExpr(RelType type, const Symbol &s,
   35   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
  179 RelType RISCV::getDynRel(RelType type) const {
  179 RelType RISCV::getDynRel(RelType type) const {
  184 RelExpr RISCV::getRelExpr(const RelType type, const Symbol &s,
  239 void RISCV::relocateOne(uint8_t *loc, const RelType type,
tools/lld/ELF/Arch/SPARCV9.cpp
   27   RelExpr getRelExpr(RelType type, const Symbol &s,
   31   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   50 RelExpr SPARCV9::getRelExpr(RelType type, const Symbol &s,
   78 void SPARCV9::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
tools/lld/ELF/Arch/X86.cpp
   27   int getTlsGdRelaxSkip(RelType type) const override;
   28   RelExpr getRelExpr(RelType type, const Symbol &s,
   30   int64_t getImplicitAddend(const uint8_t *buf, RelType type) const override;
   32   RelType getDynRel(RelType type) const override;
   32   RelType getDynRel(RelType type) const override;
   38   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   40   RelExpr adjustRelaxExpr(RelType type, const uint8_t *data,
   42   void relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const override;
   43   void relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const override;
   44   void relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const override;
   45   void relaxTlsLdToLe(uint8_t *loc, RelType type, uint64_t val) const override;
   69 int X86::getTlsGdRelaxSkip(RelType type) const {
   73 RelExpr X86::getRelExpr(RelType type, const Symbol &s,
  159 RelExpr X86::adjustRelaxExpr(RelType type, const uint8_t *data,
  186 RelType X86::getDynRel(RelType type) const {
  186 RelType X86::getDynRel(RelType type) const {
  241 int64_t X86::getImplicitAddend(const uint8_t *buf, RelType type) const {
  264 void X86::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
  322 void X86::relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const {
  337 void X86::relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const {
  354 void X86::relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const {
  391 void X86::relaxTlsLdToLe(uint8_t *loc, RelType type, uint64_t val) const {
tools/lld/ELF/Arch/X86_64.cpp
   29   int getTlsGdRelaxSkip(RelType type) const override;
   30   RelExpr getRelExpr(RelType type, const Symbol &s,
   32   RelType getDynRel(RelType type) const override;
   32   RelType getDynRel(RelType type) const override;
   38   void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override;
   40   RelExpr adjustRelaxExpr(RelType type, const uint8_t *data,
   42   void relaxGot(uint8_t *loc, RelType type, uint64_t val) const override;
   43   void relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const override;
   44   void relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const override;
   45   void relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const override;
   46   void relaxTlsLdToLe(uint8_t *loc, RelType type, uint64_t val) const override;
   73 int X86_64::getTlsGdRelaxSkip(RelType type) const { return 2; }
   75 RelExpr X86_64::getRelExpr(RelType type, const Symbol &s,
  173 RelType X86_64::getDynRel(RelType type) const {
  173 RelType X86_64::getDynRel(RelType type) const {
  180 void X86_64::relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const {
  220 void X86_64::relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const {
  261 void X86_64::relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const {
  302 void X86_64::relaxTlsLdToLe(uint8_t *loc, RelType type, uint64_t val) const {
  350 void X86_64::relocateOne(uint8_t *loc, RelType type, uint64_t val) const {
  404 RelExpr X86_64::adjustRelaxExpr(RelType type, const uint8_t *data,
  498 void X86_64::relaxGot(uint8_t *loc, RelType type, uint64_t val) const {
tools/lld/ELF/InputSection.cpp
  413     RelType type = rel.getType(config->isMips64EL);
  497 static uint32_t getARMUndefinedRelativeWeakVA(RelType type, uint32_t a,
  648 static uint64_t getRelocTargetVA(const InputFile *file, RelType type, int64_t a,
  836     RelType type = rel.getType(config->isMips64EL);
  930     RelType type = rel.type;
tools/lld/ELF/Relocations.cpp
  133 static unsigned handleMipsTlsRelocation(RelType type, Symbol &sym,
  158 handleTlsRelocation(RelType type, Symbol &sym, InputSectionBase &c,
  298 static RelType getMipsPairType(RelType type, bool isLocal) {
  298 static RelType getMipsPairType(RelType type, bool isLocal) {
  368 static bool isStaticLinkTimeConstant(RelExpr e, RelType type, const Symbol &sym,
  605   RelType type = rel.getType(config->isMips64EL);
  633   RelType type = rel.getType(config->isMips64EL);
  877 template <class RelTy> static RelType getMipsN32RelType(RelTy *&rel, RelTy *end) {
  878   RelType type = 0;
  935                              RelType type) {
  955                         RelocationBaseSection *rel, RelType type, Symbol &sym) {
 1027 static void processRelocAux(InputSectionBase &sec, RelExpr expr, RelType type,
 1045     RelType rel = target->getDynRel(type);
 1170   RelType type;
tools/lld/ELF/Relocations.h
  105   RelType type;
tools/lld/ELF/SyntheticSections.cpp
 1534 void RelocationBaseSection::addReloc(RelType dynType, InputSectionBase *isec,
 1539 void RelocationBaseSection::addReloc(RelType dynType,
 1543                                      RelType type) {
tools/lld/ELF/SyntheticSections.h
  422   DynamicReloc(RelType type, const InputSectionBase *inputSec,
  429   DynamicReloc(RelType type, const InputSectionBase *inputSec,
  443   RelType type;
  490   void addReloc(RelType dynType, InputSectionBase *isec, uint64_t offsetInSec,
  494   void addReloc(RelType dynType, InputSectionBase *inputSec,
  496                 RelType type);
tools/lld/ELF/Target.cpp
   39 std::string toString(elf::RelType type) {
  126 int64_t TargetInfo::getImplicitAddend(const uint8_t *buf, RelType type) const {
  130 bool TargetInfo::usesOnlyLowPageBits(RelType type) const { return false; }
  132 bool TargetInfo::needsThunk(RelExpr expr, RelType type, const InputFile *file,
  142 bool TargetInfo::inBranchRange(RelType type, uint64_t src, uint64_t dst) const {
  150 RelExpr TargetInfo::adjustRelaxExpr(RelType type, const uint8_t *data,
  155 void TargetInfo::relaxGot(uint8_t *loc, RelType type, uint64_t val) const {
  159 void TargetInfo::relaxTlsGdToLe(uint8_t *loc, RelType type,
  164 void TargetInfo::relaxTlsGdToIe(uint8_t *loc, RelType type,
  169 void TargetInfo::relaxTlsIeToLe(uint8_t *loc, RelType type,
  174 void TargetInfo::relaxTlsLdToLe(uint8_t *loc, RelType type,
tools/lld/ELF/Target.h
   19 std::string toString(elf::RelType type);
   29   virtual RelExpr getRelExpr(RelType type, const Symbol &s,
   31   virtual RelType getDynRel(RelType type) const { return 0; }
   31   virtual RelType getDynRel(RelType type) const { return 0; }
   36   virtual int64_t getImplicitAddend(const uint8_t *buf, RelType type) const;
   37   virtual int getTlsGdRelaxSkip(RelType type) const { return 1; }
   55   virtual bool usesOnlyLowPageBits(RelType type) const;
   59   virtual bool needsThunk(RelExpr expr, RelType relocType,
   77   virtual bool inBranchRange(RelType type, uint64_t src,
   80   virtual void relocateOne(uint8_t *loc, RelType type, uint64_t val) const = 0;
   92   RelType copyRel;
   93   RelType gotRel;
   94   RelType noneRel;
   95   RelType pltRel;
   96   RelType relativeRel;
   97   RelType iRelativeRel;
   98   RelType symbolicRel;
   99   RelType tlsDescRel;
  100   RelType tlsGotRel;
  101   RelType tlsModuleIndexRel;
  102   RelType tlsOffsetRel;
  124   virtual RelExpr adjustRelaxExpr(RelType type, const uint8_t *data,
  126   virtual void relaxGot(uint8_t *loc, RelType type, uint64_t val) const;
  127   virtual void relaxTlsGdToIe(uint8_t *loc, RelType type, uint64_t val) const;
  128   virtual void relaxTlsGdToLe(uint8_t *loc, RelType type, uint64_t val) const;
  129   virtual void relaxTlsIeToLe(uint8_t *loc, RelType type, uint64_t val) const;
  130   virtual void relaxTlsLdToLe(uint8_t *loc, RelType type, uint64_t val) const;
  168 bool tryRelaxPPC64TocIndirection(RelType type, const Relocation &rel,
  183 bool isPPC64SmallCodeModelTocReloc(RelType type);
  193 static inline void reportRangeError(uint8_t *loc, RelType type, const Twine &v,
  207 inline void checkInt(uint8_t *loc, int64_t v, int n, RelType type) {
  213 inline void checkUInt(uint8_t *loc, uint64_t v, int n, RelType type) {
  219 inline void checkIntUInt(uint8_t *loc, uint64_t v, int n, RelType type) {
  227 inline void checkAlignment(uint8_t *loc, uint64_t v, int n, RelType type) {
tools/lld/ELF/Thunks.cpp
  802 static Thunk *addThunkAArch64(RelType type, Symbol &s) {
  815 static Thunk *addThunkPreArmv7(RelType reloc, Symbol &s) {
  835 static Thunk *addThunkV6M(RelType reloc, Symbol &s) {
  849 static Thunk *addThunkArm(RelType reloc, Symbol &s) {
  890 static Thunk *addThunkMips(RelType type, Symbol &s) {
  904 static Thunk *addThunkPPC64(RelType type, Symbol &s) {