Home
last modified time | relevance | path

Searched refs:pReloc (Results 1 – 25 of 41) sorted by relevance

12

/frameworks/compile/mclinker/lib/Target/AArch64/
DAArch64Relocator.cpp34 typedef Relocator::Result (*ApplyFunctionType)(Relocation& pReloc,
151 void AArch64Relocator::scanLocalReloc(Relocation& pReloc, in scanLocalReloc() argument
154 ResolveInfo* rsym = pReloc.symInfo(); in scanLocalReloc()
155 switch (pReloc.type()) { in scanLocalReloc()
166 *pReloc.targetRef().frag(), in scanLocalReloc()
167 pReloc.targetRef().offset(), in scanLocalReloc()
170 getRelRelMap().record(pReloc, reloc); in scanLocalReloc()
182 *pReloc.targetRef().frag(), in scanLocalReloc()
183 pReloc.targetRef().offset(), in scanLocalReloc()
184 pReloc.type(), in scanLocalReloc()
[all …]
DAArch64Relocator.h98 void scanRelocation(Relocation& pReloc,
106 virtual bool mayHaveFunctionPointerAccess(const Relocation& pReloc) const;
110 uint32_t getDebugStringOffset(Relocation& pReloc) const;
114 void applyDebugStringOffset(Relocation& pReloc, uint32_t pOffset);
117 void scanLocalReloc(Relocation& pReloc, const LDSection& pSection);
119 void scanGlobalReloc(Relocation& pReloc,
DAArch64LongBranchStub.cpp81 bool AArch64LongBranchStub::isMyDuty(const Relocation& pReloc, in isMyDuty() argument
84 assert((pReloc.type() == llvm::ELF::R_AARCH64_CALL26) || in isMyDuty()
85 (pReloc.type() == llvm::ELF::R_AARCH64_JUMP26)); in isMyDuty()
86 int64_t dest = pTargetSymValue + pReloc.addend(); in isMyDuty()
DAArch64RelocationHelpers.h92 static inline AArch64PLT1& helper_PLT_init(Relocation& pReloc, in helper_PLT_init() argument
95 ResolveInfo* rsym = pReloc.symInfo(); in helper_PLT_init()
157 static inline AArch64GOTEntry& helper_GOT_init(Relocation& pReloc, in helper_GOT_init() argument
161 ResolveInfo* rsym = pReloc.symInfo(); in helper_GOT_init()
179 pParent.getRelRelMap().record(pReloc, rel_entry); in helper_GOT_init()
/frameworks/compile/mclinker/lib/Target/ARM/
DARMRelocator.cpp29 static Relocator::DWord getThumbBit(const Relocation& pReloc) { in getThumbBit() argument
33 ((!pReloc.symInfo()->isUndef() || pReloc.symInfo()->isDyn()) && in getThumbBit()
34 (pReloc.symInfo()->type() == ResolveInfo::Function) && in getThumbBit()
35 ((pReloc.symValue() & 0x1) != 0)) in getThumbBit()
81 static ARMGOTEntry& helper_GOT_init(Relocation& pReloc, in helper_GOT_init() argument
85 ResolveInfo* rsym = pReloc.symInfo(); in helper_GOT_init()
125 static ARMPLT1& helper_PLT_init(Relocation& pReloc, ARMRelocator& pParent) { in helper_PLT_init() argument
127 ResolveInfo* rsym = pReloc.symInfo(); in helper_PLT_init()
151 static void helper_DynRel_init(Relocation& pReloc, in helper_DynRel_init() argument
155 ResolveInfo* rsym = pReloc.symInfo(); in helper_DynRel_init()
[all …]
DARMRelocator.h89 void scanRelocation(Relocation& pReloc,
97 virtual bool mayHaveFunctionPointerAccess(const Relocation& pReloc) const;
101 uint32_t getDebugStringOffset(Relocation& pReloc) const;
105 void applyDebugStringOffset(Relocation& pReloc, uint32_t pOffset);
108 void scanLocalReloc(Relocation& pReloc, const LDSection& pSection);
110 void scanGlobalReloc(Relocation& pReloc,
114 void checkValidReloc(Relocation& pReloc) const;
DARMToARMStub.cpp61 bool ARMToARMStub::isMyDuty(const class Relocation& pReloc, in isMyDuty() argument
67 switch (pReloc.type()) { in isMyDuty()
73 uint64_t dest = pTargetSymValue + pReloc.addend() + 8u; in isMyDuty()
DARMToTHMStub.cpp63 bool ARMToTHMStub::isMyDuty(const class Relocation& pReloc, in isMyDuty() argument
69 switch (pReloc.type()) { in isMyDuty()
73 uint64_t dest = pTargetSymValue + pReloc.addend() + 8u; in isMyDuty()
DTHMToARMStub.cpp70 bool THMToARMStub::isMyDuty(const class Relocation& pReloc, in isMyDuty() argument
76 switch (pReloc.type()) { in isMyDuty()
80 uint64_t dest = pTargetSymValue + pReloc.addend() + 4u; in isMyDuty()
DTHMToTHMStub.cpp72 bool THMToTHMStub::isMyDuty(const class Relocation& pReloc, in isMyDuty() argument
78 switch (pReloc.type()) { in isMyDuty()
82 uint64_t dest = pTargetSymValue + pReloc.addend() + 4u; in isMyDuty()
/frameworks/compile/mclinker/lib/Target/Mips/
DMipsRelocator.cpp90 static void helper_PLT_init(MipsRelocationInfo& pReloc, in helper_PLT_init() argument
92 ResolveInfo* rsym = pReloc.parent().symInfo(); in helper_PLT_init()
149 Relocator::Result MipsRelocator::applyRelocation(Relocation& pReloc) { in applyRelocation() argument
153 if (m_CurrentLo16Reloc == NULL && isPostponed(pReloc)) { in applyRelocation()
154 postponeRelocation(pReloc); in applyRelocation()
158 for (MipsRelocationInfo info(pReloc, isRel()); !info.isNone(); in applyRelocation()
171 pReloc.target() &= ~mask; in applyRelocation()
172 pReloc.target() |= info.result() & mask; in applyRelocation()
183 void MipsRelocator::scanRelocation(Relocation& pReloc, in scanRelocation() argument
189 ResolveInfo* rsym = pReloc.symInfo(); in scanRelocation()
[all …]
DMipsRelocator.h44 void scanRelocation(Relocation& pReloc,
66 Result applyRelocation(Relocation& pReloc);
70 uint32_t getDebugStringOffset(Relocation& pReloc) const;
74 void applyDebugStringOffset(Relocation& pReloc, uint32_t pOffset);
84 void postponeRelocation(Relocation& pReloc);
91 bool isGpDisp(const Relocation& pReloc) const;
110 Fragment& getLocalGOTEntry(MipsRelocationInfo& pReloc,
115 Fragment& getGlobalGOTEntry(MipsRelocationInfo& pReloc);
119 Fragment& getTLSGOTEntry(MipsRelocationInfo& pReloc);
122 Address getGOTOffset(MipsRelocationInfo& pReloc);
[all …]
DMipsLA25Stub.cpp50 bool MipsLA25Stub::isMyDuty(const Relocation& pReloc, in isMyDuty() argument
53 if (llvm::ELF::R_MIPS_26 != pReloc.type()) in isMyDuty()
56 const ResolveInfo* rsym = pReloc.symInfo(); in isMyDuty()
/frameworks/compile/mclinker/lib/Target/X86/
DX86Relocator.cpp59 static X86_32GOTEntry& helper_GOT_init(Relocation& pReloc, in helper_GOT_init() argument
63 ResolveInfo* rsym = pReloc.symInfo(); in helper_GOT_init()
92 static Relocator::Address helper_get_GOT_address(Relocation& pReloc, in helper_get_GOT_address() argument
94 X86_32GOTEntry* got_entry = pParent.getSymGOTMap().lookUp(*pReloc.symInfo()); in helper_get_GOT_address()
99 static PLTEntryBase& helper_PLT_init(Relocation& pReloc, in helper_PLT_init() argument
102 ResolveInfo* rsym = pReloc.symInfo(); in helper_PLT_init()
136 typedef Relocator::Result (*X86_32ApplyFunctionType)(Relocation& pReloc,
160 void X86Relocator::scanRelocation(Relocation& pReloc, in scanRelocation() argument
168 ResolveInfo* rsym = pReloc.symInfo(); in scanRelocation()
179 scanLocalReloc(pReloc, pLinker, pModule, pSection); in scanRelocation()
[all …]
DX86Relocator.h80 void scanRelocation(Relocation& pReloc,
99 virtual void scanLocalReloc(Relocation& pReloc,
104 virtual void scanGlobalReloc(Relocation& pReloc,
149 virtual bool mayHaveFunctionPointerAccess(const Relocation& pReloc) const;
153 uint32_t getDebugStringOffset(Relocation& pReloc) const;
157 void applyDebugStringOffset(Relocation& pReloc, uint32_t pOffset);
160 void scanLocalReloc(Relocation& pReloc,
165 void scanGlobalReloc(Relocation& pReloc,
172 void convertTLSIEtoLE(Relocation& pReloc, LDSection& pSection);
214 virtual bool mayHaveFunctionPointerAccess(const Relocation& pReloc) const;
[all …]
/frameworks/compile/mclinker/lib/Target/Hexagon/
DHexagonRelocator.cpp55 static HexagonGOTEntry& helper_GOT_init(Relocation& pReloc, in helper_GOT_init() argument
59 ResolveInfo* rsym = pReloc.symInfo(); in helper_GOT_init()
91 static PLTEntryBase& helper_PLT_init(Relocation& pReloc, in helper_PLT_init() argument
94 ResolveInfo* rsym = pReloc.symInfo(); in helper_PLT_init()
127 typedef Relocator::Result (*ApplyFunctionType)(Relocation& pReloc,
195 void HexagonRelocator::scanRelocation(Relocation& pReloc, in scanRelocation() argument
204 ResolveInfo* rsym = pReloc.symInfo(); in scanRelocation()
216 scanLocalReloc(pReloc, pLinker, pModule, pSection); in scanRelocation()
218 scanGlobalReloc(pReloc, pLinker, pModule, pSection); in scanRelocation()
223 issueUndefRef(pReloc, pSection, pInput); in scanRelocation()
[all …]
DHexagonRelocator.h78 void scanRelocation(Relocation& pReloc,
85 void partialScanRelocation(Relocation& pReloc,
110 uint32_t getDebugStringOffset(Relocation& pReloc) const { return 0; } in getDebugStringOffset() argument
114 void applyDebugStringOffset(Relocation& pReloc, uint32_t pOffset) {} in applyDebugStringOffset() argument
129 virtual void scanLocalReloc(Relocation& pReloc,
134 virtual void scanGlobalReloc(Relocation& pReloc,
/frameworks/compile/mclinker/lib/LD/
DStubFactory.cpp40 Stub* StubFactory::create(Relocation& pReloc, in create() argument
46 Stub* prototype = findPrototype(pReloc, pReloc.place(), pTargetSymValue); in create()
48 const Fragment* frag = pReloc.targetRef().frag(); in create()
59 stub = islands.second->findStub(prototype, pReloc); in create()
64 stub = islands.first->findStub(prototype, pReloc); in create()
70 stub->applyFixup(pReloc, pBuilder, *islands.first); in create()
73 islands.first->addStub(prototype, pReloc, *stub); in create()
109 Stub* StubFactory::findPrototype(const Relocation& pReloc, in findPrototype() argument
114 if ((*it)->isMyDuty(pReloc, pSource, pTargetSymValue)) in findPrototype()
DRelocator.cpp31 void Relocator::partialScanRelocation(Relocation& pReloc, in partialScanRelocation() argument
34 if (pReloc.symInfo()->type() == ResolveInfo::Section) { in partialScanRelocation()
35 LDSymbol* input_sym = pReloc.symInfo()->outSymbol(); in partialScanRelocation()
40 pReloc.target() += offset; in partialScanRelocation()
49 pReloc.setSymInfo(sym_info); in partialScanRelocation()
53 void Relocator::issueUndefRef(Relocation& pReloc, in issueUndefRef() argument
56 FragmentRef::Offset undef_sym_pos = pReloc.targetRef().offset(); in issueUndefRef()
61 std::string reloc_sym(pReloc.symInfo()->name()); in issueUndefRef()
DBranchIsland.cpp86 Stub* BranchIsland::findStub(const Stub* pPrototype, const Relocation& pReloc) { in findStub() argument
87 Key key(pPrototype, pReloc.symInfo()->outSymbol(), pReloc.addend()); in findStub()
98 const Relocation& pReloc, in addStub() argument
101 Key key(pPrototype, pReloc.symInfo()->outSymbol(), pReloc.addend()); in addStub()
151 bool BranchIsland::addRelocation(Relocation& pReloc) { in addRelocation() argument
152 m_Relocations.push_back(&pReloc); in addRelocation()
DDebugString.cpp67 void DebugString::applyOffset(Relocation& pReloc, TargetLDBackend& pBackend) { in applyOffset() argument
69 ResolveInfo* info = pReloc.symInfo(); in applyOffset()
78 uint32_t offset = pBackend.getRelocator()->getDebugStringOffset(pReloc); in applyOffset()
82 pBackend.getRelocator()->applyDebugStringOffset(pReloc, in applyOffset()
/frameworks/compile/mclinker/include/mcld/LD/
DRelocator.h51 virtual void scanRelocation(Relocation& pReloc,
63 virtual void issueUndefRef(Relocation& pReloc,
89 virtual void partialScanRelocation(Relocation& pReloc,
107 virtual bool mayHaveFunctionPointerAccess(const Relocation& pReloc) const { in mayHaveFunctionPointerAccess() argument
113 virtual uint32_t getDebugStringOffset(Relocation& pReloc) const = 0;
117 virtual void applyDebugStringOffset(Relocation& pReloc, uint32_t pOffset) = 0;
DStubFactory.h36 Stub* create(Relocation& pReloc,
48 Stub* findPrototype(const Relocation& pReloc,
DBranchIsland.h91 Stub* findStub(const Stub* pPrototype, const Relocation& pReloc);
94 bool addStub(const Stub* pPrototype, const Relocation& pReloc, Stub& pStub);
99 bool addRelocation(Relocation& pReloc);
DIdenticalCodeFolding.h40 FoldingCandidate(LDSection* pCode, LDSection* pReloc, Input* pInput) in FoldingCandidate() argument
41 : sect(pCode), reloc_sect(pReloc), obj(pInput) {} in FoldingCandidate()

12