summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephane Carrez <stcarrez@nerim.fr>2005-11-11 10:25:34 +0000
committerStephane Carrez <stcarrez@nerim.fr>2005-11-11 10:25:34 +0000
commit8e3b5a54137c82a95e5d39e81c5bf0a5ae1c1672 (patch)
treec11aa39350f5ee4976cb39ca64eb6f931ac87d00
parent101be0f653d2af1fc4a4edc8e14f26f6b81d0a78 (diff)
downloadgdb-8e3b5a54137c82a95e5d39e81c5bf0a5ae1c1672.tar.gz
* m68hc11-tdep.c (m68hc11_pseudo_register_write): Use gdb_byte
for buffers. (m68hc11_pseudo_register_read): Likewise. (m68hc11_return_value): Likewise. (m68hc11_frame_prev_register): Likewise. (m68hc11_frame_align): Remove as its seems no longer necessary. (m68hc11_gdbarch_init): Don't install frame_align handler. (m68hc11_scan_prologue): Fix crash that occurred when called from m68hc11_skip_prologue
-rw-r--r--gdb/ChangeLog12
-rw-r--r--gdb/m68hc11-tdep.c26
2 files changed, 20 insertions, 18 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0ec8d53a911..ebd6cb07f27 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2005-11-11 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (m68hc11_pseudo_register_write): Use gdb_byte
+ for buffers.
+ (m68hc11_pseudo_register_read): Likewise.
+ (m68hc11_return_value): Likewise.
+ (m68hc11_frame_prev_register): Likewise.
+ (m68hc11_frame_align): Remove as its seems no longer necessary.
+ (m68hc11_gdbarch_init): Don't install frame_align handler.
+ (m68hc11_scan_prologue): Fix crash that occurred when called from
+ m68hc11_skip_prologue
+
2005-11-10 Mark Kettenis <kettenis@gnu.org>
* MAINTAINERS: Mark m68k-elf, sparc-elf and vax-netbsd as no
diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c
index ed4cac02778..053e9915494 100644
--- a/gdb/m68hc11-tdep.c
+++ b/gdb/m68hc11-tdep.c
@@ -291,7 +291,7 @@ m68hc11_which_soft_register (CORE_ADDR addr)
static void
m68hc11_pseudo_register_read (struct gdbarch *gdbarch,
struct regcache *regcache,
- int regno, void *buf)
+ int regno, gdb_byte *buf)
{
/* The PC is a pseudo reg only for 68HC12 with the memory bank
addressing mode. */
@@ -332,7 +332,7 @@ m68hc11_pseudo_register_read (struct gdbarch *gdbarch,
static void
m68hc11_pseudo_register_write (struct gdbarch *gdbarch,
struct regcache *regcache,
- int regno, const void *buf)
+ int regno, const gdb_byte *buf)
{
/* The PC is a pseudo reg only for 68HC12 with the memory bank
addressing mode. */
@@ -706,7 +706,8 @@ m68hc11_scan_prologue (CORE_ADDR pc, CORE_ADDR current_pc,
break;
save_addr -= 2;
- info->saved_regs[saved_reg].addr = save_addr;
+ if (info->saved_regs)
+ info->saved_regs[saved_reg].addr = save_addr;
}
else
{
@@ -905,7 +906,7 @@ m68hc11_frame_prev_register (struct frame_info *next_frame,
void **this_prologue_cache,
int regnum, int *optimizedp,
enum lval_type *lvalp, CORE_ADDR *addrp,
- int *realnump, void *bufferp)
+ int *realnump, gdb_byte *bufferp)
{
struct m68hc11_unwind_cache *info
= m68hc11_frame_unwind_cache (next_frame, this_prologue_cache);
@@ -1156,12 +1157,6 @@ m68hc11_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file,
}
static CORE_ADDR
-m68hc11_stack_align (CORE_ADDR addr)
-{
- return ((addr + 1) & -2);
-}
-
-static CORE_ADDR
m68hc11_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
struct regcache *regcache, CORE_ADDR bp_addr,
int nargs, struct value **args, CORE_ADDR sp,
@@ -1177,11 +1172,7 @@ m68hc11_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
first_stack_argnum = 0;
if (struct_return)
{
- /* The struct is allocated on the stack and gdb used the stack
- pointer for the address of that struct. We must apply the
- stack offset on the address. */
- regcache_cooked_write_unsigned (regcache, HARD_D_REGNUM,
- struct_addr + STACK_CORRECTION);
+ regcache_cooked_write_unsigned (regcache, HARD_D_REGNUM, struct_addr);
}
else if (nargs > 0)
{
@@ -1324,8 +1315,8 @@ m68hc11_extract_return_value (struct type *type, struct regcache *regcache,
enum return_value_convention
m68hc11_return_value (struct gdbarch *gdbarch, struct type *valtype,
- struct regcache *regcache, void *readbuf,
- const void *writebuf)
+ struct regcache *regcache, gdb_byte *readbuf,
+ const gdb_byte *writebuf)
{
if (TYPE_CODE (valtype) == TYPE_CODE_STRUCT
|| TYPE_CODE (valtype) == TYPE_CODE_UNION
@@ -1526,7 +1517,6 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
set_gdbarch_skip_prologue (gdbarch, m68hc11_skip_prologue);
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
set_gdbarch_breakpoint_from_pc (gdbarch, m68hc11_breakpoint_from_pc);
- set_gdbarch_deprecated_stack_align (gdbarch, m68hc11_stack_align);
set_gdbarch_print_insn (gdbarch, gdb_print_insn_m68hc11);
m68hc11_add_reggroups (gdbarch);