PowerPC64 ELFv2 trampoline match
authorAlan Modra <amodra@gmail.com>
Mon, 11 Nov 2013 03:44:40 +0000 (14:14 +1030)
committerAlan Modra <amodra@gmail.com>
Fri, 15 Nov 2013 00:02:06 +0000 (10:32 +1030)
commitef1bc9e72fd2f0310ac3113acc41e1c115e3ac79
tree305ca622a59672db9f1bf12d59eda6b5dca974da
parent993a449f1714480593eb0a2a6bd6e21d8f029168
PowerPC64 ELFv2 trampoline match

ELFv2 needs different plt call stubs to ELFv1, register usage differs
too.  When I added these to ld I changed register usage in the ELFv1
stubs as well, simplifying the linker code and (perhaps) future
maintenance.  All well and good, but this means gdb needs to cope with
more stub variants.  This patch also handles skipping over addis/addi
setting up r2 in ELFv2 global entry code.  We want breakpoints to be
set past this point to catch calls via the local entry point.

* ppc64-tdep.c (ppc64_plt_entry_point): Renamed from..
(ppc64_desc_entry_point): ..this.  Update comments here and at
call points.
(ppc64_standard_linkage1, ppc64_standard_linkage2,
ppc64_standard_linkage3): Update comments.
(ppc64_standard_linkage4, ppc64_standard_linkage5,
(ppc64_standard_linkage6, ppc64_standard_linkage7): New insn
patterns.
(ppc64_standard_linkage4_target): New function.
(ppc64_skip_trampoline_code): Skip ELFv2 patterns too.
* rs6000-tdep.c (skip_prologue): Skip ELFv2 r2 setup.  Correct
nop match.  Fix comment wrap.
gdb/ChangeLog
gdb/ppc64-tdep.c
gdb/rs6000-tdep.c