diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/ppc-linux-tdep.c | 38 |
2 files changed, 0 insertions, 43 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0b0177d9467..8be24c291dd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -10,11 +10,6 @@ * solib-svr4.c (solib_break_names): Recognize the 64-bit PowerPC Linux entry point symbols for _dl_debug_state, too. - * ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr): New - function. - (ppc_linux_init_abi): Register it as the - CONVERT_FROM_FUNC_PTR_ADDR method under the PPC64 Linux ABI. - * arch-utils.c (always_use_struct_convention): New function. * arch-utils.h (always_use_struct_convention): New prototype. * alpha-tdep.c (alpha_use_struct_convention): Delete. diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c index 270bc4b74e1..a772c19935b 100644 --- a/gdb/ppc-linux-tdep.c +++ b/gdb/ppc-linux-tdep.c @@ -894,39 +894,6 @@ ppc64_skip_trampoline_code (CORE_ADDR pc) } -/* Support for CONVERT_FROM_FUNC_PTR_ADDR(ADDR). - - Usually a function pointer's representation is simply the address - of the function. On the RS/6000 however, a function pointer is - represented by a pointer to a TOC entry. This TOC entry contains - three words, the first word is the address of the function, the - second word is the TOC pointer (r2), and the third word is the - static chain value. Throughout GDB it is currently assumed that a - function pointer contains the address of the function, which is not - easy to fix. In addition, the conversion of a function address to - a function pointer would require allocation of a TOC entry in the - inferior's memory space, with all its drawbacks. To be able to - call C++ virtual methods in the inferior (which are called via - function pointers), find_function_addr uses this function to get the - function address from a function pointer. */ - -/* Return real function address if ADDR (a function pointer) is in the data - space and is therefore a special function pointer. */ - -static CORE_ADDR -ppc64_linux_convert_from_func_ptr_addr (CORE_ADDR addr) -{ - struct obj_section *s; - - s = find_pc_section (addr); - if (s && s->the_bfd_section->flags & SEC_CODE) - return addr; - - /* ADDR is in the data space, so it's a special function pointer. */ - return ppc64_desc_entry_point (addr); -} - - /* 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 @@ -1060,11 +1027,6 @@ ppc_linux_init_abi (struct gdbarch_info info, if (tdep->wordsize == 8) { - /* Handle PPC64 Linux function pointers (which are really - function descriptors). */ - set_gdbarch_convert_from_func_ptr_addr - (gdbarch, ppc64_linux_convert_from_func_ptr_addr); - set_gdbarch_call_dummy_address (gdbarch, ppc64_call_dummy_address); set_gdbarch_in_solib_call_trampoline |