R_PPC64_PCREL_OPT
authorAlan Modra <amodra@gmail.com>
Wed, 4 Sep 2019 06:00:37 +0000 (15:30 +0930)
committerAlan Modra <amodra@gmail.com>
Thu, 5 Sep 2019 04:26:20 +0000 (13:56 +0930)
commit77486630b13e9e586b0a1556cba9876a0ede99da
tree161e6fdbc465968b10e3a7be716026b1f6acf33c
parent89bdc77eabf5ede68322f6e47e003c1dc45b9ccb
R_PPC64_PCREL_OPT

The loads and stores handled in the second instruction of a sequence
marked by R_PPC64_PCREL_OPT may be a prefix instruction.  For example:
 pld ra,symbol@got@pcrel
0:
 pld rt,off(ra)
 .reloc 0b-8,R_PPC64_PCREL_OPT,(.-8)-(0b-8)
can be optimised to
 pld rt,symbol+off@pcrel
 pnop

* elf64-ppc.c (xlate_pcrel_opt): Handle prefix loads and stores
in second instruction.
(ppc64_elf_relocate_section): Likewise.
bfd/ChangeLog
bfd/elf64-ppc.c
ld/ChangeLog
ld/testsuite/ld-powerpc/pcrelopt.d
ld/testsuite/ld-powerpc/pcrelopt.s