aboutsummaryrefslogtreecommitdiff
path: root/gdb/config
diff options
context:
space:
mode:
authorPeter Schauer <Peter.Schauer@mytum.de>2000-10-26 07:41:25 +0000
committerPeter Schauer <Peter.Schauer@mytum.de>2000-10-26 07:41:25 +0000
commitf517ea4ebb7d0c85a5c7850757b2f1d6716e2dcf (patch)
tree7a72b4773df10c1d31950a0509650a314b8e6816 /gdb/config
parentba181e2f16dcf24ec7336b1f358f54fce72af42b (diff)
downloadgdb-f517ea4ebb7d0c85a5c7850757b2f1d6716e2dcf.zip
gdb-f517ea4ebb7d0c85a5c7850757b2f1d6716e2dcf.tar.gz
gdb-f517ea4ebb7d0c85a5c7850757b2f1d6716e2dcf.tar.bz2
* arch-utils.c, arch-utils.h (default_convert_from_func_ptr_addr):
New function. * gdbarch.sh (CONVERT_FROM_FUNC_PTR_ADDR): Add. * gdbarch.c, gdbarch.h: Regenerate. * valops.c (find_function_addr): Use CONVERT_FROM_FUNC_PTR_ADDR unconditionally. * config/rs6000/tm-rs6000.h (CONVERT_FROM_FUNC_PTR_ADDR): Delete definition. * config/powerpc/tm-linux.h (CONVERT_FROM_FUNC_PTR_ADDR): Remove undef. * rs6000-tdep.c (rs6000_convert_from_func_ptr_addr): Fix comment. (rs6000_gdbarch_init): Register rs6000_convert_from_func_ptr_addr if not ELFOSABI_LINUX.
Diffstat (limited to 'gdb/config')
-rw-r--r--gdb/config/powerpc/tm-linux.h3
-rw-r--r--gdb/config/rs6000/tm-rs6000.h17
2 files changed, 0 insertions, 20 deletions
diff --git a/gdb/config/powerpc/tm-linux.h b/gdb/config/powerpc/tm-linux.h
index 99d4c96..cf3275e 100644
--- a/gdb/config/powerpc/tm-linux.h
+++ b/gdb/config/powerpc/tm-linux.h
@@ -55,9 +55,6 @@ extern int ppc_linux_in_sigtramp (CORE_ADDR pc, char *func_name);
#define CANNOT_STORE_REGISTER(regno) ((regno) >= MQ_REGNUM)
#endif
-/* Linux doesn't use the PowerOpen ABI for function pointer representation */
-#undef CONVERT_FROM_FUNC_PTR_ADDR
-
#if 0 /* If skip_prologue() isn't too greedy, we don't need this */
/* There is some problem with the debugging symbols generated by the
compiler such that the debugging symbol for the first line of a
diff --git a/gdb/config/rs6000/tm-rs6000.h b/gdb/config/rs6000/tm-rs6000.h
index 9bf8381..beb445d 100644
--- a/gdb/config/rs6000/tm-rs6000.h
+++ b/gdb/config/rs6000/tm-rs6000.h
@@ -97,23 +97,6 @@ extern void aix_process_linenos (void);
/* Default offset from SP where the LR is stored */
#define DEFAULT_LR_SAVE 8
-/* 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 macro to get the
- function address from a function pointer. */
-
-#define CONVERT_FROM_FUNC_PTR_ADDR rs6000_convert_from_func_ptr_addr
-extern CORE_ADDR rs6000_convert_from_func_ptr_addr (CORE_ADDR);
-
/* Flag for machine-specific stuff in shared files. FIXME */
#define IBM6000_TARGET