diff options
author | Peter Schauer <Peter.Schauer@mytum.de> | 2000-10-26 07:41:25 +0000 |
---|---|---|
committer | Peter Schauer <Peter.Schauer@mytum.de> | 2000-10-26 07:41:25 +0000 |
commit | f517ea4ebb7d0c85a5c7850757b2f1d6716e2dcf (patch) | |
tree | 7a72b4773df10c1d31950a0509650a314b8e6816 /gdb/config | |
parent | ba181e2f16dcf24ec7336b1f358f54fce72af42b (diff) | |
download | gdb-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.h | 3 | ||||
-rw-r--r-- | gdb/config/rs6000/tm-rs6000.h | 17 |
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 |