• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/lld/ELF/

Lines Matching refs:Thunk

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 cannot
1643 // the relocation back to the original target and create another Thunk.
1717 // Add a Thunk that needs to be placed in a ThunkSection that immediately
1858 std::pair<Thunk *, bool> ThunkCreator::getThunk(InputSection *isec,
1860 std::vector<Thunk *> *thunkVec = nullptr;
1867 // non-Thunk target, so we cannot fold offset + addend.
1876 for (Thunk *t : *thunkVec)
1884 // No existing compatible Thunk in range, create a new one
1885 Thunk *t = addThunk(*isec, rel);
1890 // Return true if the relocation target is an in range Thunk.
1891 // Return false if the relocation is not to a Thunk. If the relocation target
1892 // was originally to a Thunk, but is no longer in range we revert the
1893 // relocation back to its original non-Thunk target.
1895 if (Thunk *t = thunks.lookup(rel.sym)) {
1912 // All InputSections that may need a Thunk are reachable from
1923 // OutputSections. All relocations that needed a Thunk based on the information
1924 // available to createThunks() on entry have been redirected to a Thunk. Note
1949 // If we are a relocation to an existing Thunk, check if it is
1951 // original target so another Thunk can be generated.
1959 Thunk *t;
1964 // Find or create a ThunkSection for the new Thunk
1974 // Redirect relocation to Thunk, we never go via the PLT to a Thunk