Correct eh_frame info for __glink_PLTresolve
authorAlan Modra <amodra@gmail.com>
Sun, 23 Jul 2017 10:33:40 +0000 (20:03 +0930)
committerAlan Modra <amodra@gmail.com>
Sun, 23 Jul 2017 11:10:39 +0000 (20:40 +0930)
commit15a3a14fdd725c049d6b2aadbaf66c9be5ed36a8
tree633d54bee7dac24c42e25a098af636280867fee1
parent5c2c0020fbe7110e6780ec1ee85ff11833779f8c
Correct eh_frame info for __glink_PLTresolve

My PPC64_OPT_LOCALENTRY patch of June 1, git commit f378ab099d, and
the later gold change, git commit 7ee7ff7015, added an insn in
__glink_PLTresolve which needs a corresponding adjustment in the
eh_frame info for asynchronous exceptions to unwind correctly.

It would have been OK for both ABIs to use +5 for the advance before
restore of LR, since we can put the DW_CFA_restore_extended on any
insn after the actual restore and before the r12/r0 copy is clobbered,
but it's slightly better to delay as much as possible.  There are
then more addresses where fewer CFA program insns are executed.

bfd/
* elf64-ppc.c (ppc64_elf_size_stubs): Correct advance to
restore of LR.
gold/
* powerpc.cc (glink_eh_frame_fde_64v2): Correct advance to
restore of LR.
(glink_eh_frame_fde_64v1): Advance to restore of LR at latest
possible insn.
bfd/ChangeLog
bfd/elf64-ppc.c
gold/ChangeLog
gold/powerpc.cc
This page took 0.026099 seconds and 4 git commands to generate.