Changeset View
Changeset View
Standalone View
Standalone View
lld/ELF/Target.h
Show All 29 Lines | virtual RelExpr getRelExpr(RelType type, const Symbol &s, | ||||
const uint8_t *loc) const = 0; | const uint8_t *loc) const = 0; | ||||
virtual RelType getDynRel(RelType type) const { return 0; } | virtual RelType getDynRel(RelType type) const { return 0; } | ||||
virtual void writeGotPltHeader(uint8_t *buf) const {} | virtual void writeGotPltHeader(uint8_t *buf) const {} | ||||
virtual void writeGotHeader(uint8_t *buf) const {} | virtual void writeGotHeader(uint8_t *buf) const {} | ||||
virtual void writeGotPlt(uint8_t *buf, const Symbol &s) const {}; | virtual void writeGotPlt(uint8_t *buf, const Symbol &s) const {}; | ||||
virtual void writeIgotPlt(uint8_t *buf, const Symbol &s) const {} | virtual void writeIgotPlt(uint8_t *buf, const Symbol &s) const {} | ||||
virtual int64_t getImplicitAddend(const uint8_t *buf, RelType type) const; | virtual int64_t getImplicitAddend(const uint8_t *buf, RelType type) const; | ||||
virtual int getTlsGdRelaxSkip(RelType type) const { return 1; } | virtual int getTlsGdRelaxSkip(RelType type) const { return 1; } | ||||
virtual bool emitFuncDataSections() const { return true; } | |||||
// If lazy binding is supported, the first entry of the PLT has code | // If lazy binding is supported, the first entry of the PLT has code | ||||
// to call the dynamic linker to resolve PLT entries the first time | // to call the dynamic linker to resolve PLT entries the first time | ||||
// they are called. This function writes that code. | // they are called. This function writes that code. | ||||
virtual void writePltHeader(uint8_t *buf) const {} | virtual void writePltHeader(uint8_t *buf) const {} | ||||
virtual void writePlt(uint8_t *buf, const Symbol &sym, | virtual void writePlt(uint8_t *buf, const Symbol &sym, | ||||
uint64_t pltEntryAddr) const {} | uint64_t pltEntryAddr) const {} | ||||
▲ Show 20 Lines • Show All 123 Lines • ▼ Show 20 Lines | protected: | ||||
// Given that, the smallest value that can be used in here is 0x10000. | // Given that, the smallest value that can be used in here is 0x10000. | ||||
uint64_t defaultImageBase = 0x10000; | uint64_t defaultImageBase = 0x10000; | ||||
}; | }; | ||||
TargetInfo *getAArch64TargetInfo(); | TargetInfo *getAArch64TargetInfo(); | ||||
TargetInfo *getAMDGPUTargetInfo(); | TargetInfo *getAMDGPUTargetInfo(); | ||||
TargetInfo *getARMTargetInfo(); | TargetInfo *getARMTargetInfo(); | ||||
TargetInfo *getAVRTargetInfo(); | TargetInfo *getAVRTargetInfo(); | ||||
TargetInfo *getBPFTargetInfo(); | |||||
TargetInfo *getHexagonTargetInfo(); | TargetInfo *getHexagonTargetInfo(); | ||||
TargetInfo *getMSP430TargetInfo(); | TargetInfo *getMSP430TargetInfo(); | ||||
TargetInfo *getPPC64TargetInfo(); | TargetInfo *getPPC64TargetInfo(); | ||||
TargetInfo *getPPCTargetInfo(); | TargetInfo *getPPCTargetInfo(); | ||||
TargetInfo *getRISCVTargetInfo(); | TargetInfo *getRISCVTargetInfo(); | ||||
TargetInfo *getSPARCV9TargetInfo(); | TargetInfo *getSPARCV9TargetInfo(); | ||||
TargetInfo *getX86TargetInfo(); | TargetInfo *getX86TargetInfo(); | ||||
TargetInfo *getX86_64TargetInfo(); | TargetInfo *getX86_64TargetInfo(); | ||||
▲ Show 20 Lines • Show All 109 Lines • Show Last 20 Lines |