PowerPC64 --plt-align
authorAlan Modra <amodra@gmail.com>
Sat, 9 Sep 2017 12:25:22 +0000 (21:55 +0930)
committerAlan Modra <amodra@gmail.com>
Sat, 9 Sep 2017 16:25:16 +0000 (01:55 +0930)
commit2420fff633eff03ec1f85eba82a926cd0ecf4229
treece52c69c7236e211580be3aa4da6692022bbe0bc
parentc5bce5c69721af8dae5c607e085e545cdba33ab1
PowerPC64 --plt-align

This changes the PowerPC64 --plt-align option to perform the usual
alignment of code as suggested by its name, as well as the previous
behaviour of padding so as to reduce boundary crossing.  The old
behaviour is had by using a negative parameter.

The default is also changed to align plt stub code by default to 32
byte boundaries, the point being to get better bctr branch prediction
on power8 and power9 hardware.

bfd/
* elf64-ppp.c (plt_stub_pad): Handle positive and negative
plt_stub_align.
ld/
* ld.texinfo (--plt-align): Describe new behaviour of option.
* emultempl/ppc64elf.em (params): Default plt_stub_align to 5.
* testsuite/ld-powerpc/powerpc.exp: Pass --no-plt-align for
selected tests.
* testsuite/ld-powerpc/relbrlt.d: Pass --no-plt-align.
* testsuite/ld-powerpc/elfv2so.d: Adjust expected output.
bfd/ChangeLog
bfd/elf64-ppc.c
ld/ChangeLog
ld/emultempl/ppc64elf.em
ld/ld.texinfo
ld/testsuite/ld-powerpc/elfv2so.d
ld/testsuite/ld-powerpc/powerpc.exp
ld/testsuite/ld-powerpc/relbrlt.d