diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e974cea3df..ccf3b51f41 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2000-07-14 Nicholas Duffek + + * ppcbug-rom.c (ppcbug_regnames[]): Make array size implicit. + * rs6000-tdep.c (DEFAULT_LR_SAVE): Move to config/*/tm-*.h. + (rs6000_gdbarch_init): Use generic_pc_in_call_dummy instead of + rs6000_pc_in_call_dummy. + * config/rs6000/tm-rs6000.h (DEFAULT_LR_SAVE): Move here from + rs6000-tdep.c. + * config/powerpc/tm-ppc-eabi.h: Remove various definitions + handled by multi-arched rs6000-tdep.c. + 2000-07-14 Nick Clifton * config/mcore/tm-mcore.h (SKIP_PROLOGUE): Fix defintion to avoid diff --git a/gdb/config/powerpc/tm-ppc-eabi.h b/gdb/config/powerpc/tm-ppc-eabi.h index 2e333a8b03..57e056bf0d 100644 --- a/gdb/config/powerpc/tm-ppc-eabi.h +++ b/gdb/config/powerpc/tm-ppc-eabi.h @@ -30,8 +30,6 @@ #undef DEFAULT_LR_SAVE #define DEFAULT_LR_SAVE 4 /* eabi saves LR at 4 off of SP */ -#define GDB_TARGET_POWERPC - #undef PC_LOAD_SEGMENT #undef PROCESS_LINENUMBER_HOOK @@ -43,38 +41,6 @@ #define TARGET_BYTE_ORDER_SELECTABLE_P 1 -/* return true if a given `pc' value is in `call dummy' function. */ -/* FIXME: This just checks for the end of the stack, which is broken - for things like stepping through gcc nested function stubs. */ -#undef PC_IN_CALL_DUMMY - -/* generic dummy frame stuff */ - - - -/* target-specific dummy_frame stuff */ - -extern struct frame_info *rs6000_pop_frame (struct frame_info *frame); - -extern CORE_ADDR ppc_push_return_address (CORE_ADDR, CORE_ADDR); - -#undef PUSH_DUMMY_FRAME -#define PUSH_DUMMY_FRAME generic_push_dummy_frame () - -#define PUSH_RETURN_ADDRESS(PC, SP) ppc_push_return_address (PC, SP) - -/* override the standard get_saved_register function with - one that takes account of generic CALL_DUMMY frames */ -#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \ - generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval) - -#define USE_GENERIC_DUMMY_FRAMES 1 -#define CALL_DUMMY_BREAKPOINT_OFFSET (0) -#define CALL_DUMMY_LOCATION AT_ENTRY_POINT -#define CALL_DUMMY_ADDRESS() entry_point_address () -#undef CALL_DUMMY_START_OFFSET -#define CALL_DUMMY_START_OFFSET 0 - /* The value of symbols of type N_SO and N_FUN maybe null when it shouldn't be. */ #define SOFUN_ADDRESS_MAYBE_MISSING diff --git a/gdb/config/rs6000/tm-rs6000.h b/gdb/config/rs6000/tm-rs6000.h index 8f4552128c..9bf8381b37 100644 --- a/gdb/config/rs6000/tm-rs6000.h +++ b/gdb/config/rs6000/tm-rs6000.h @@ -94,6 +94,9 @@ extern void aix_process_linenos (void); prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ()); #define INIT_FRAME_PC(fromleaf, prev) /* nothing */ +/* 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 diff --git a/gdb/ppcbug-rom.c b/gdb/ppcbug-rom.c index 123161a269..af1da7301f 100644 --- a/gdb/ppcbug-rom.c +++ b/gdb/ppcbug-rom.c @@ -104,7 +104,7 @@ ppcbug_supply_register (regname, regnamelen, val, vallen) * registers either. So, typing "info reg sp" becomes an "A7". */ -static char *ppcbug_regnames[NUM_REGS] = +static char *ppcbug_regnames[] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index f61074ba2f..66cee5a205 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -56,9 +56,6 @@ #define SIG_FRAME_LR_OFFSET 108 #define SIG_FRAME_FP_OFFSET 284 -/* Default offset from SP where the LR is stored */ -#define DEFAULT_LR_SAVE 8 - /* To be used by skip_prologue. */ struct rs6000_framedata @@ -2048,7 +2045,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1); set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0); set_gdbarch_call_dummy_start_offset (gdbarch, 0); - set_gdbarch_pc_in_call_dummy (gdbarch, rs6000_pc_in_call_dummy); + set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy); set_gdbarch_call_dummy_p (gdbarch, 1); set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0); set_gdbarch_get_saved_register (gdbarch, generic_get_saved_register);