Searched refs:Thunk (Results 1 - 25 of 29) sorted by relevance

12

/freebsd-13-stable/contrib/llvm-project/lld/ELF/
H A DThunks.h20 // Class to describe an instance of a Thunk.
21 // A Thunk is a code-sequence inserted by the linker in between a caller and
22 // the callee. The relocation to the callee is redirected to the Thunk, which
29 class Thunk { class in namespace:lld::elf
31 Thunk(Symbol &destination, int64_t addend);
32 virtual ~Thunk();
50 // To reuse a Thunk the InputSection and the relocation must be compatible
63 // The alignment requirement for this Thunk, defaults to the size of the
68 // For a Relocation to symbol S create a Thunk to be added to a synthetic
70 Thunk *addThun
[all...]
H A DRelocations.h132 class Thunk;
156 std::pair<Thunk *, bool> getThunk(InputSection *isec, Relocation &rel,
167 // a relocation back to its original non-Thunk target, and restore the
171 std::vector<Thunk *>>
173 llvm::DenseMap<std::pair<Symbol *, int64_t>, std::vector<Thunk *>>
176 // Find a Thunk from the Thunks symbol definition, we can use this to find
177 // the Thunk from a relocation to the Thunks symbol definition.
178 llvm::DenseMap<Symbol *, Thunk *> thunks;
183 // The Mips LA25 Thunk is an example of an inline ThunkSection.
H A DThunks.cpp9 // This file contains Thunk subclasses.
49 class AArch64ABSLongThunk final : public Thunk {
51 AArch64ABSLongThunk(Symbol &dest, int64_t addend) : Thunk(dest, addend) {}
57 class AArch64ADRPThunk final : public Thunk {
59 AArch64ADRPThunk(Symbol &dest, int64_t addend) : Thunk(dest, addend) {}
73 class ARMThunk : public Thunk {
75 ARMThunk(Symbol &dest) : Thunk(dest, 0) {}
103 class ThumbThunk : public Thunk {
105 ThumbThunk(Symbol &dest) : Thunk(dest, 0) { alignment = 2; }
124 // Specific ARM Thunk implementation
865 Thunk::Thunk(Symbol &d, int64_t a) : destination(d), addend(a), offset(0) {} function in class:Thunk
[all...]
H A DRelocations.cpp1533 // Check if Thunk is immediately before any specific Target
1538 // Place Thunk Sections without specific targets before
1539 // non-Thunk Sections.
1561 // Thunk Implementation
1588 // Thunk placement requirements:
1590 // We can assume that the caller is in range of the Thunk. These are modelled
1599 // Thunk placement algorithm:
1624 // Thunk Section 1
1626 // The intention is that we can add a Thunk to a ThunkSection that is well
1628 // of work. An important principle is that it is not an error if a Thunk canno
[all...]
H A DSyntheticSections.h1071 // Add a newly created Thunk to this container:
1072 // Thunk is given offset from start of this InputSection
1073 // Thunk defines a symbol in this InputSection that can be used as target
1075 void addThunk(Thunk *t);
1086 std::vector<Thunk *> thunks;
H A DSyntheticSections.cpp3499 void ThunkSection::addThunk(Thunk *t) {
3505 for (Thunk *t : thunks)
3512 const Thunk *t = thunks.front();
3518 for (Thunk *t : thunks) {
/freebsd-13-stable/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/
H A DSymbolRecordHelpers.cpp40 Thunk32Sym Thunk = createRecord<Thunk32Sym>(Sym); local
41 return Thunk.End;
71 Thunk32Sym Thunk = createRecord<Thunk32Sym>(Sym); local
72 return Thunk.Parent;
H A DSymbolRecordMapping.cpp59 Error SymbolRecordMapping::visitKnownRecord(CVSymbol &CVR, Thunk32Sym &Thunk) { argument
61 error(IO.mapInteger(Thunk.Parent));
62 error(IO.mapInteger(Thunk.End));
63 error(IO.mapInteger(Thunk.Next));
64 error(IO.mapInteger(Thunk.Offset));
65 error(IO.mapInteger(Thunk.Segment));
66 error(IO.mapInteger(Thunk.Length));
67 error(IO.mapEnum(Thunk.Thunk));
68 error(IO.mapStringZ(Thunk
[all...]
H A DSymbolDumper.cpp135 Error CVSymbolDumperImpl::visitKnownRecord(CVSymbol &CVR, Thunk32Sym &Thunk) { argument
136 W.printString("Name", Thunk.Name);
137 W.printNumber("Parent", Thunk.Parent);
138 W.printNumber("End", Thunk.End);
139 W.printNumber("Next", Thunk.Next);
140 W.printNumber("Off", Thunk.Offset);
141 W.printNumber("Seg", Thunk.Segment);
142 W.printNumber("Len", Thunk.Length);
143 W.printEnum("Ordinal", uint8_t(Thunk.Thunk), getThunkOrdinalName
[all...]
/freebsd-13-stable/contrib/llvm-project/llvm/include/llvm/DebugInfo/PDB/
H A DPDBSymbolThunk.h21 DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::Thunk)
H A DPDBExtras.h33 raw_ostream &operator<<(raw_ostream &OS, const codeview::ThunkOrdinal &Thunk);
H A DPDBTypes.h271 Thunk, member in class:llvm::pdb::PDB_Checksum::PDB_SymType
/freebsd-13-stable/contrib/llvm-project/clang/lib/CodeGen/
H A DCGVTables.cpp40 static void setThunkProperties(CodeGenModule &CGM, const ThunkInfo &Thunk, argument
45 !Thunk.Return.isEmpty());
71 const ThunkInfo &Thunk) {
95 Thunk.Return);
159 GlobalDecl GD, const ThunkInfo &Thunk) {
213 CGM.getCXXABI().performThisAdjustment(*this, ThisPtr, Thunk.This);
218 if (!Thunk.Return.isEmpty()) {
226 RV = PerformReturnAdjustment(*this, ResultType, RV, Thunk);
293 const ThunkInfo *Thunk,
301 Thunk
69 PerformReturnAdjustment(CodeGenFunction &CGF, QualType ResultType, RValue RV, const ThunkInfo &Thunk) argument
157 GenerateVarArgsThunk(llvm::Function *Fn, const CGFunctionInfo &FnInfo, GlobalDecl GD, const ThunkInfo &Thunk) argument
292 EmitCallAndReturnForThunk(llvm::FunctionCallee Callee, const ThunkInfo *Thunk, bool IsUnprototyped) argument
446 generateThunk(llvm::Function *Fn, const CGFunctionInfo &FnInfo, GlobalDecl GD, const ThunkInfo &Thunk, bool IsUnprototyped) argument
507 llvm::Constant *Thunk = CGM.GetAddrOfThunk(Name, ThunkVTableTy, GD); local
[all...]
H A DCGCXXABI.h479 virtual void setThunkLinkage(llvm::Function *Thunk, bool ForVTable,
/freebsd-13-stable/contrib/llvm-project/clang/lib/AST/
H A DVTableBuilder.cpp885 void AddThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk);
1066 const ThunkInfo &Thunk) {
1073 if (llvm::find(ThunksVector, Thunk) != ThunksVector.end())
1076 ThunksVector.push_back(Thunk);
1162 const ThunkInfo &Thunk = TI.second; local
1180 AddThunk(MD, Thunk);
1961 ThunkInfo Thunk = VTableThunks.lookup(I); local
1962 if (!Thunk.isEmpty()) {
1964 if (!Thunk.Return.isEmpty()) {
1966 Out << Thunk
1065 AddThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk) argument
2009 ThunkInfo Thunk = VTableThunks.lookup(I); local
2131 const ThunkInfo &Thunk = ThunksVector[I]; local
2497 AddThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk) argument
3182 ThunkInfo Thunk = VTableThunks.lookup(I); local
3198 ThunkInfo Thunk = VTableThunks.lookup(I); local
3250 const ThunkInfo &Thunk = ThunksVector[I]; local
[all...]
H A DItaniumMangle.cpp142 void mangleThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk,
5160 const ThunkInfo &Thunk,
5173 if (!Thunk.Return.isEmpty())
5177 Mangler.mangleCallOffset(Thunk.This.NonVirtual,
5178 Thunk.This.Virtual.Itanium.VCallOffsetOffset);
5181 if (!Thunk.Return.isEmpty())
5182 Mangler.mangleCallOffset(Thunk.Return.NonVirtual,
5183 Thunk.Return.Virtual.Itanium.VBaseOffsetOffset);
H A DMicrosoftMangle.cpp144 void mangleThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk,
3096 const ThunkInfo &Thunk,
3106 AccessSpecifier AS = Thunk.Return.isEmpty() ? MD->getAccess() : AS_public;
3107 mangleThunkThisAdjustment(AS, Thunk.This, Mangler, MHO);
3109 if (!Thunk.Return.isEmpty())
3110 assert(Thunk.Method != nullptr &&
3111 "Thunk info should hold the overridee decl");
3113 const CXXMethodDecl *DeclForFPT = Thunk.Method ? Thunk.Method : MD;
3095 mangleThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk, raw_ostream &Out) argument
/freebsd-13-stable/contrib/llvm-project/llvm/tools/llvm-pdbutil/
H A DMinimalSymbolDumper.cpp396 Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, Thunk32Sym &Thunk) { argument
397 P.format(" `{0}`", Thunk.Name);
399 P.formatLine("parent = {0}, end = {1}, next = {2}", Thunk.Parent, Thunk.End,
400 Thunk.Next);
402 formatThunkOrdinal(Thunk.Thunk), Thunk.Length,
403 formatSegmentOffset(Thunk.Segment, Thunk
[all...]
H A Dllvm-pdbutil.cpp1269 while (auto Thunk = Thunks->getNext())
1270 Dumper.dump(*Thunk);
/freebsd-13-stable/contrib/llvm-project/llvm/lib/DebugInfo/PDB/
H A DPDBExtras.cpp175 const codeview::ThunkOrdinal &Thunk) {
176 switch (Thunk) {
252 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, Thunk, OS)
174 operator <<(raw_ostream &OS, const codeview::ThunkOrdinal &Thunk) argument
H A DPDBSymbol.cpp92 FACTORY_SYMTAG_CASE(Thunk, PDBSymbolThunk)
/freebsd-13-stable/contrib/llvm-project/clang/include/clang/AST/
H A DMangle.h103 const ThunkInfo &Thunk,
/freebsd-13-stable/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/
H A DPdbUtil.cpp92 return PDB_SymType::Thunk;
/freebsd-13-stable/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/
H A DSymbolRecord.h82 ThunkOrdinal Thunk = ThunkOrdinal::Standard; member in class:llvm::codeview::Thunk32Sym
/freebsd-13-stable/contrib/llvm-project/llvm/lib/ObjectYAML/
H A DCodeViewYAMLSymbols.cpp286 IO.mapRequired("Ordinal", Symbol.Thunk);

Completed in 382 milliseconds

12