This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH] sh-tdep.c fix
- To: gdb-patches at sources dot redhat dot com
- Subject: [PATCH] sh-tdep.c fix
- From: Elena Zannoni <ezannoni at cygnus dot com>
- Date: Thu, 26 Jul 2001 23:37:40 -0400
I discovered a little foobar. sh_gdbarch_init was using the macro
NUM_REGS, which was being defined for the given arch in the same
call. It would pick up the value of whatever the
current_gdbarch->NUM_REGS would be. current_gdbarch is NOT the arch we
are defining.
Elena
2001-07-26 Elena Zannoni <ezannoni@redhat.com>
* sh-tdep.c (sh_gdbarch_init): Use SH_DEFAULT_NUM_REGS instead of
NUM_REGS.
(SH_DEFAULT_NUM_REGS): Define.
Index: sh-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sh-tdep.c,v
retrieving revision 1.37
diff -u -p -r1.37 sh-tdep.c
--- sh-tdep.c 2001/07/15 20:10:02 1.37
+++ sh-tdep.c 2001/07/27 03:23:26
@@ -50,6 +50,8 @@ int (*print_sh_insn) (bfd_vma, disassemb
CORE_ADDR (*skip_prologue_hard_way) (CORE_ADDR);
void (*do_pseudo_register) (int);
+#define SH_DEFAULT_NUM_REGS 59
+
/* Define other aspects of the stack frame.
we keep a copy of the worked out return pc lying around, since it
is a useful bit of info */
@@ -1906,12 +1908,12 @@ sh_gdbarch_init (struct gdbarch_info inf
set_gdbarch_max_register_raw_size (gdbarch, 4);
set_gdbarch_max_register_virtual_size (gdbarch, 4);
set_gdbarch_ptr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
- set_gdbarch_num_regs (gdbarch, 59);
+ set_gdbarch_num_regs (gdbarch, SH_DEFAULT_NUM_REGS);
set_gdbarch_sp_regnum (gdbarch, 15);
set_gdbarch_fp_regnum (gdbarch, 14);
set_gdbarch_pc_regnum (gdbarch, 16);
set_gdbarch_register_size (gdbarch, 4);
- set_gdbarch_register_bytes (gdbarch, NUM_REGS * 4);
+ set_gdbarch_register_bytes (gdbarch, SH_DEFAULT_NUM_REGS * 4);
set_gdbarch_fetch_pseudo_register (gdbarch, sh_fetch_pseudo_register);
set_gdbarch_store_pseudo_register (gdbarch, sh_store_pseudo_register);
set_gdbarch_do_registers_info (gdbarch, sh_do_registers_info);