Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
lld/ELF/Thunks.cpp
Show First 20 Lines • Show All 272 Lines • ▼ Show 20 Lines | |||||
class PPC64PILongBranchThunk final : public PPC64LongBranchThunk { | class PPC64PILongBranchThunk final : public PPC64LongBranchThunk { | ||||
public: | public: | ||||
PPC64PILongBranchThunk(Symbol &Dest) : PPC64LongBranchThunk(Dest) { | PPC64PILongBranchThunk(Symbol &Dest) : PPC64LongBranchThunk(Dest) { | ||||
assert(!Dest.IsPreemptible); | assert(!Dest.IsPreemptible); | ||||
if (Dest.isInPPC64Branchlt()) | if (Dest.isInPPC64Branchlt()) | ||||
return; | return; | ||||
In.PPC64LongBranchTarget->addEntry(Dest); | In.PPC64LongBranchTarget->addEntry(Dest); | ||||
In.RelaDyn->addReloc({Target->RelativeRel, In.PPC64LongBranchTarget, | Main->RelaDyn->addReloc( | ||||
{Target->RelativeRel, In.PPC64LongBranchTarget, | |||||
Dest.getPPC64LongBranchOffset(), true, &Dest, | Dest.getPPC64LongBranchOffset(), true, &Dest, | ||||
getPPC64GlobalEntryToLocalEntryOffset(Dest.StOther)}); | getPPC64GlobalEntryToLocalEntryOffset(Dest.StOther)}); | ||||
} | } | ||||
}; | }; | ||||
class PPC64PDLongBranchThunk final : public PPC64LongBranchThunk { | class PPC64PDLongBranchThunk final : public PPC64LongBranchThunk { | ||||
public: | public: | ||||
PPC64PDLongBranchThunk(Symbol &Dest) : PPC64LongBranchThunk(Dest) { | PPC64PDLongBranchThunk(Symbol &Dest) : PPC64LongBranchThunk(Dest) { | ||||
if (!Dest.isInPPC64Branchlt()) | if (!Dest.isInPPC64Branchlt()) | ||||
In.PPC64LongBranchTarget->addEntry(Dest); | In.PPC64LongBranchTarget->addEntry(Dest); | ||||
▲ Show 20 Lines • Show All 554 Lines • Show Last 20 Lines |