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

12

/freebsd-11-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.h118 class Thunk;
142 std::pair<Thunk *, bool> getThunk(InputSection *isec, Relocation &rel,
153 // a relocation back to its original non-Thunk target, and restore the
157 std::vector<Thunk *>>
159 llvm::DenseMap<std::pair<Symbol *, int64_t>, std::vector<Thunk *>>
162 // Find a Thunk from the Thunks symbol definition, we can use this to find
163 // the Thunk from a relocation to the Thunks symbol definition.
164 llvm::DenseMap<Symbol *, Thunk *> thunks;
169 // The Mips LA25 Thunk is an example of an inline ThunkSection.
H A DThunks.cpp9 // This file contains Thunk subclasses.
50 class AArch64ABSLongThunk final : public Thunk {
52 AArch64ABSLongThunk(Symbol &dest, int64_t addend) : Thunk(dest, addend) {}
58 class AArch64ADRPThunk final : public Thunk {
60 AArch64ADRPThunk(Symbol &dest, int64_t addend) : Thunk(dest, addend) {}
74 class ARMThunk : public Thunk {
76 ARMThunk(Symbol &dest) : Thunk(dest, 0) {}
104 class ThumbThunk : public Thunk {
106 ThumbThunk(Symbol &dest) : Thunk(dest, 0) { alignment = 2; }
125 // Specific ARM Thunk implementation
837 Thunk::Thunk(Symbol &d, int64_t a) : destination(d), addend(a), offset(0) {} function in class:lld::elf::Thunk
[all...]
H A DRelocations.cpp1498 // Check if Thunk is immediately before any specific Target
1503 // Place Thunk Sections without specific targets before
1504 // non-Thunk Sections.
1526 // Thunk Implementation
1553 // Thunk placement requirements:
1555 // We can assume that the caller is in range of the Thunk. These are modelled
1564 // Thunk placement algorithm:
1589 // Thunk Section 1
1591 // The intention is that we can add a Thunk to a ThunkSection that is well
1593 // 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.cpp3476 void ThunkSection::addThunk(Thunk *t) {
3482 for (Thunk *t : thunks)
3489 const Thunk *t = thunks.front();
3495 for (Thunk *t : thunks) {
/freebsd-11-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-11-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.h269 Thunk, member in class:llvm::pdb::PDB_Checksum::PDB_SymType
/freebsd-11-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
444 generateThunk(llvm::Function *Fn, const CGFunctionInfo &FnInfo, GlobalDecl GD, const ThunkInfo &Thunk, bool IsUnprototyped) argument
505 llvm::Constant *Thunk = CGM.GetAddrOfThunk(Name, ThunkVTableTy, GD); local
[all...]
H A DCGCXXABI.h444 virtual void setThunkLinkage(llvm::Function *Thunk, bool ForVTable,
/freebsd-11-stable/contrib/llvm-project/clang/lib/AST/
H A DVTableBuilder.cpp877 void AddThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk);
1058 const ThunkInfo &Thunk) {
1065 if (llvm::find(ThunksVector, Thunk) != ThunksVector.end())
1068 ThunksVector.push_back(Thunk);
1154 const ThunkInfo &Thunk = TI.second; local
1172 AddThunk(MD, Thunk);
1947 ThunkInfo Thunk = VTableThunks.lookup(I); local
1948 if (!Thunk.isEmpty()) {
1950 if (!Thunk.Return.isEmpty()) {
1952 Out << Thunk
1057 AddThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk) argument
1995 ThunkInfo Thunk = VTableThunks.lookup(I); local
2117 const ThunkInfo &Thunk = ThunksVector[I]; local
2450 AddThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk) argument
3134 ThunkInfo Thunk = VTableThunks.lookup(I); local
3150 ThunkInfo Thunk = VTableThunks.lookup(I); local
3202 const ThunkInfo &Thunk = ThunksVector[I]; local
[all...]
H A DMicrosoftMangle.cpp142 void mangleThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk,
3066 const ThunkInfo &Thunk,
3076 AccessSpecifier AS = Thunk.Return.isEmpty() ? MD->getAccess() : AS_public;
3077 mangleThunkThisAdjustment(AS, Thunk.This, Mangler, MHO);
3079 if (!Thunk.Return.isEmpty())
3080 assert(Thunk.Method != nullptr &&
3081 "Thunk info should hold the overridee decl");
3083 const CXXMethodDecl *DeclForFPT = Thunk.Method ? Thunk.Method : MD;
3065 mangleThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk, raw_ostream &Out) argument
H A DItaniumMangle.cpp139 void mangleThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk,
4988 const ThunkInfo &Thunk,
5001 if (!Thunk.Return.isEmpty())
5005 Mangler.mangleCallOffset(Thunk.This.NonVirtual,
5006 Thunk.This.Virtual.Itanium.VCallOffsetOffset);
5009 if (!Thunk.Return.isEmpty())
5010 Mangler.mangleCallOffset(Thunk.Return.NonVirtual,
5011 Thunk.Return.Virtual.Itanium.VBaseOffsetOffset);
/freebsd-11-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.cpp1265 while (auto Thunk = Thunks->getNext())
1266 Dumper.dump(*Thunk);
/freebsd-11-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-11-stable/contrib/llvm-project/clang/include/clang/AST/
H A DMangle.h102 const ThunkInfo &Thunk,
/freebsd-11-stable/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/
H A DPdbUtil.cpp92 return PDB_SymType::Thunk;
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/
H A DSymbolRecord.h82 ThunkOrdinal Thunk = ThunkOrdinal::Standard; member in class:llvm::codeview::Thunk32Sym
/freebsd-11-stable/contrib/llvm-project/llvm/lib/ObjectYAML/
H A DCodeViewYAMLSymbols.cpp286 IO.mapRequired("Ordinal", Symbol.Thunk);

Completed in 203 milliseconds

12