[PowerPC] Add some special @got@tprel fixup cases
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Fri, 5 Jul 2013 13:49:46 +0000 (13:49 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Fri, 5 Jul 2013 13:49:46 +0000 (13:49 +0000)
commit457571ed6977f78ca8d30b993fa7e86e2d7ad8d5
tree86df432d9bbeab64a95f581c15352adcdfc66fa8
parent47734db936bd3b434d60f9daee5b34bc722ee3ba
[PowerPC] Add some special @got@tprel fixup cases

When a target@got@tprel or target@got@tprel@l symbol variant is used in
a fixup_ppc_half16 (*not* fixup_ppc_half16ds) context, we currently fail,
since the corresponding R_PPC64_GOT_TPREL16 / R_PPC64_GOT_TPREL16_LO
relocation types do not exist.

However, since such symbol variants resolve to GOT offsets which are
always 4-aligned, we can simply instead use the _DS variants of the
relocation types, which *do* exist.

The same applies for the @got@dtprel variants.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185700 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
test/MC/PowerPC/ppc64-fixups.s