[ELF2/PPC64] Invert PPC64TargetInfo::isRelRelative's default

When I initially implemented PPC64TargetInfo::isRelRelative, I included a fixed
set of relative relocations, and made the default false. In retrospect, this
seems unwise in two respects: First, most PPC64 relocations are relative
(either to the base address, the TOC, etc.). Second, most relocation targets
are not appropriate for R_PPC64_RELATIVE (which writes a 64-bit absolute
address). Thus, back off, and include only those relocations for which we test
(or soon will), and are obviously appropriate for R_PPC64_RELATIVE.

llvm-svn: 250540
This commit is contained in:
Hal Finkel 2015-10-16 19:01:50 +00:00
parent b93483dbce
commit 0091862801
1 changed files with 3 additions and 7 deletions

View File

@ -423,14 +423,10 @@ bool PPC64TargetInfo::relocNeedsPlt(uint32_t Type, const SymbolBody &S) const {
bool PPC64TargetInfo::isRelRelative(uint32_t Type) const {
switch (Type) {
default:
return false;
case R_PPC64_REL24:
case R_PPC64_REL14:
case R_PPC64_REL14_BRTAKEN:
case R_PPC64_REL14_BRNTAKEN:
case R_PPC64_REL32:
case R_PPC64_REL64:
return true;
case R_PPC64_TOC:
case R_PPC64_ADDR64:
return false;
}
}