aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2003-06-24 23:02:10 +0000
committerJim Blandy <jimb@codesourcery.com>2003-06-24 23:02:10 +0000
commitd64558a59f6149d9899d3d05edb6b32312f7c77e (patch)
tree94cc8765da136213fcb743d9e11d341e1cdc894d /gdb
parente766d4d601948ac7d6d65176dc52c6d31181a54b (diff)
downloadgdb-d64558a59f6149d9899d3d05edb6b32312f7c77e.zip
gdb-d64558a59f6149d9899d3d05edb6b32312f7c77e.tar.gz
gdb-d64558a59f6149d9899d3d05edb6b32312f7c77e.tar.bz2
* ppc-linux-tdep.c (ppc64_desc_entry_point): New function.
(ppc64_standard_linkage_target): Use it.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/ppc-linux-tdep.c12
2 files changed, 16 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e7d32b2..cf526c0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-24 Jim Blandy <jimb@redhat.com>
+
+ * ppc-linux-tdep.c (ppc64_desc_entry_point): New function.
+ (ppc64_standard_linkage_target): Use it.
+
2003-06-23 Andrew Cagney <cagney@redhat.com>
* rs6000-tdep.c (rs6000_register_virtual_type): Add explict cases
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index ab038b7..2f369cd 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -731,6 +731,16 @@ insn_ds_field (unsigned int insn)
}
+/* If DESC is the address of a 64-bit PowerPC Linux function
+ descriptor, return the descriptor's entry point. */
+static CORE_ADDR
+ppc64_desc_entry_point (CORE_ADDR desc)
+{
+ /* The first word of the descriptor is the entry point. */
+ return (CORE_ADDR) read_memory_unsigned_integer (desc, 8);
+}
+
+
/* Pattern for the standard linkage function. These are built by
build_plt_stub in elf64-ppc.c, whose GLINK argument is always
zero. */
@@ -865,7 +875,7 @@ ppc64_standard_linkage_target (CORE_ADDR pc, unsigned int *insn)
+ insn_ds_field (insn[2]));
/* The first word of the descriptor is the entry point. Return that. */
- return (CORE_ADDR) read_memory_unsigned_integer (desc, 8);
+ return ppc64_desc_entry_point (desc);
}