/freebsd-13-stable/contrib/llvm-project/lld/ELF/ |
H A D | Thunks.h | 20 // 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 D | Relocations.h | 132 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 D | Thunks.cpp | 9 // 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 D | Relocations.cpp | 1533 // 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 D | SyntheticSections.h | 1071 // 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 D | SyntheticSections.cpp | 3499 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 D | SymbolRecordHelpers.cpp | 40 Thunk32Sym Thunk = createRecord<Thunk32Sym>(Sym); local 41 return Thunk.End; 71 Thunk32Sym Thunk = createRecord<Thunk32Sym>(Sym); local 72 return Thunk.Parent;
|
H A D | SymbolRecordMapping.cpp | 59 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 D | SymbolDumper.cpp | 135 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 D | PDBSymbolThunk.h | 21 DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::Thunk)
|
H A D | PDBExtras.h | 33 raw_ostream &operator<<(raw_ostream &OS, const codeview::ThunkOrdinal &Thunk);
|
H A D | PDBTypes.h | 271 Thunk, member in class:llvm::pdb::PDB_Checksum::PDB_SymType
|
/freebsd-13-stable/contrib/llvm-project/clang/lib/CodeGen/ |
H A D | CGVTables.cpp | 40 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 D | CGCXXABI.h | 479 virtual void setThunkLinkage(llvm::Function *Thunk, bool ForVTable,
|
/freebsd-13-stable/contrib/llvm-project/clang/lib/AST/ |
H A D | VTableBuilder.cpp | 885 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 D | ItaniumMangle.cpp | 142 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 D | MicrosoftMangle.cpp | 144 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 D | MinimalSymbolDumper.cpp | 396 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 D | llvm-pdbutil.cpp | 1269 while (auto Thunk = Thunks->getNext()) 1270 Dumper.dump(*Thunk);
|
/freebsd-13-stable/contrib/llvm-project/llvm/lib/DebugInfo/PDB/ |
H A D | PDBExtras.cpp | 175 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 D | PDBSymbol.cpp | 92 FACTORY_SYMTAG_CASE(Thunk, PDBSymbolThunk)
|
/freebsd-13-stable/contrib/llvm-project/clang/include/clang/AST/ |
H A D | Mangle.h | 103 const ThunkInfo &Thunk,
|
/freebsd-13-stable/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/ |
H A D | PdbUtil.cpp | 92 return PDB_SymType::Thunk;
|
/freebsd-13-stable/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/ |
H A D | SymbolRecord.h | 82 ThunkOrdinal Thunk = ThunkOrdinal::Standard; member in class:llvm::codeview::Thunk32Sym
|
/freebsd-13-stable/contrib/llvm-project/llvm/lib/ObjectYAML/ |
H A D | CodeViewYAMLSymbols.cpp | 286 IO.mapRequired("Ordinal", Symbol.Thunk);
|