* [gdb_6_0-branch commit] PPC64: new call_dummy_address gdbarch method
@ 2003-06-28 0:23 Jim Blandy
0 siblings, 0 replies; only message in thread
From: Jim Blandy @ 2003-06-28 0:23 UTC (permalink / raw)
To: gdb-patches
I've committed this to the 6.0 branch, with verbal approval on the
phone from Kevin Buettner, the PPC Linux maintainer. It is already
committed to the trunk.
2003-06-06 Jim Blandy <jimb@redhat.com>
* ppc-linux-tdep.c (ppc64_call_dummy_address): New function.
(ppc_linux_init_abi): Set it as the gdbarch's call_dummy_address
method.
Index: gdb/ppc-linux-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/ppc-linux-tdep.c,v
retrieving revision 1.28.8.5
diff -c -r1.28.8.5 ppc-linux-tdep.c
*** gdb/ppc-linux-tdep.c 7 Jun 2003 00:06:05 -0000 1.28.8.5
--- gdb/ppc-linux-tdep.c 7 Jun 2003 00:15:33 -0000
***************
*** 893,898 ****
--- 893,910 ----
}
+ /* On 64-bit PowerPC Linux, the ELF header's e_entry field is the
+ address of a function descriptor for the entry point function, not
+ the actual entry point itself. So to find the actual address at
+ which execution should begin, we need to fetch the function's entry
+ point from that descriptor. */
+ static CORE_ADDR
+ ppc64_call_dummy_address (void)
+ {
+ return ppc64_desc_entry_point (entry_point_address ());
+ }
+
+
enum {
ELF_NGREG = 48,
ELF_NFPREG = 33,
***************
*** 1014,1019 ****
--- 1026,1033 ----
if (tdep->wordsize == 8)
{
+ set_gdbarch_call_dummy_address (gdbarch, ppc64_call_dummy_address);
+
set_gdbarch_in_solib_call_trampoline
(gdbarch, ppc64_in_solib_call_trampoline);
set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code);
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-06-28 0:23 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-28 0:23 [gdb_6_0-branch commit] PPC64: new call_dummy_address gdbarch method Jim Blandy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox