diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7490c40709..7454f519cc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2002-04-25 Jason Thorpe + + * alpha-tdep.c (alpha_breakpoint_from_pc): New function. + (alpha_gdbarch_init): Set gdbarch_breakpoint_from_pc to + alpha_breakpoint_from_pc. Set gdbarch_function_start_offset + to 0. + * config/alpha/tm-alpha.h: Remove forward decls of struct type + and struct value. + (FUNCTION_START_OFFSET): Remove. + (BREAKPOINT): Ditto. + 2002-04-25 Jason Thorpe * MAINTAINERS: Reflect that multi-arch is enabled for VAX. diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index 035b8d9d78..4bec6bcbfe 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -59,6 +59,8 @@ static gdbarch_extract_struct_value_address_ftype alpha_extract_struct_value_address; static gdbarch_use_struct_convention_ftype alpha_use_struct_convention; +static gdbarch_breakpoint_from_pc_ftype alpha_breakpoint_from_pc; + static gdbarch_frame_args_address_ftype alpha_frame_args_address; static gdbarch_frame_locals_address_ftype alpha_frame_locals_address; @@ -1496,6 +1498,16 @@ alpha_register_convert_to_raw (struct type *valtype, int regnum, error ("Cannot store value in floating point register"); } +static const unsigned char * +alpha_breakpoint_from_pc (CORE_ADDR *pcptr, int *lenptr) +{ + static const unsigned char alpha_breakpoint[] = + { 0x80, 0, 0, 0 }; /* call_pal bpt */ + + *lenptr = sizeof(alpha_breakpoint); + return (alpha_breakpoint); +} + /* Given a return value in `regbuf' with a type `valtype', extract and copy its value into `valbuf'. */ @@ -2061,7 +2073,10 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_coerce_float_to_double (gdbarch, standard_coerce_float_to_double); + set_gdbarch_breakpoint_from_pc (gdbarch, alpha_breakpoint_from_pc); set_gdbarch_decr_pc_after_break (gdbarch, 4); + + set_gdbarch_function_start_offset (gdbarch, 0); set_gdbarch_frame_args_skip (gdbarch, 0); /* Hook in ABI-specific overrides, if they have been registered. */ diff --git a/gdb/config/alpha/tm-alpha.h b/gdb/config/alpha/tm-alpha.h index a37933288c..b8bcb397ce 100644 --- a/gdb/config/alpha/tm-alpha.h +++ b/gdb/config/alpha/tm-alpha.h @@ -31,8 +31,6 @@ #include "coff/symconst.h" struct frame_info; -struct type; -struct value; struct symbol; /* Number of traps that happen between exec'ing the shell @@ -40,13 +38,6 @@ struct symbol; the inferior code. This is 2 on most implementations. */ #define START_INFERIOR_TRAPS_EXPECTED 3 -/* Offset from address of function to start of its code. - Zero on most machines. */ - -#define FUNCTION_START_OFFSET 0 - -#define BREAKPOINT {0x80, 0, 0, 0} /* call_pal bpt */ - /* Special symbol found in blocks associated with routines. We can hang alpha_extra_func_info_t's off of this. */