2000-12-15 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* sh-tdep.c (sh_do_pseudo_register): Indent properly. Call do_dr_register_info() only for DR registers. (sh_sh4_register_name): Add comments with numbers. (_initialize_sh_tdep): Move assignment to disassemble printing function from here... (sh_gdbarch_init):...to here. Move some more general settings to before the architecture is recognized.
This commit is contained in:
parent
d20966a734
commit
a38d2a54be
2 changed files with 38 additions and 15 deletions
|
@ -1,3 +1,13 @@
|
|||
2000-12-15 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* sh-tdep.c (sh_do_pseudo_register): Indent properly. Call
|
||||
do_dr_register_info() only for DR registers.
|
||||
(sh_sh4_register_name): Add comments with numbers.
|
||||
(_initialize_sh_tdep): Move assignment to disassemble printing
|
||||
function from here...
|
||||
(sh_gdbarch_init):...to here. Move some more general settings to
|
||||
before the architecture is recognized.
|
||||
|
||||
Fri Dec 15 23:27:56 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* remote.c (remote_fetch_registers): Replace #ifdef
|
||||
|
@ -142,6 +152,7 @@ Fri Dec 15 22:58:59 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
* configure.tgt (m68*-*-netbsd*, ns32k-*-netbsd*): Add gdbserver
|
||||
to configdirs.
|
||||
|
||||
>>>>>>> 1.847
|
||||
2000-12-07 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* config/sh/tm-sh.h (struct gdbarch_tdep): Rename fields
|
||||
|
|
|
@ -271,17 +271,28 @@ sh_sh4_register_name (int reg_nr)
|
|||
{
|
||||
static char *register_names[] =
|
||||
{
|
||||
/* general registers 0-15 */
|
||||
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
|
||||
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
|
||||
/* 16 - 22 */
|
||||
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr",
|
||||
/* 23, 24 */
|
||||
"fpul", "fpscr",
|
||||
/* floating point registers 25 - 40 */
|
||||
"fr0", "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7",
|
||||
"fr8", "fr9", "fr10", "fr11", "fr12", "fr13", "fr14", "fr15",
|
||||
/* 41, 42 */
|
||||
"ssr", "spc",
|
||||
/* bank 0 43 - 50 */
|
||||
"r0b0", "r1b0", "r2b0", "r3b0", "r4b0", "r5b0", "r6b0", "r7b0",
|
||||
/* bank 1 51 - 58 */
|
||||
"r0b1", "r1b1", "r2b1", "r3b1", "r4b1", "r5b1", "r6b1", "r7b1",
|
||||
/* double precision (pseudo) 59 - 66 */
|
||||
"dr0", "dr2", "dr4", "dr6", "dr8", "dr10", "dr12", "dr14",
|
||||
/* vectors (pseudo) 67 - 70 */
|
||||
"fv0", "fv4", "fv8", "fv12",
|
||||
/* FIXME: missing XF 71 - 86 */
|
||||
/* FIXME: missing XD 87 - 94 */
|
||||
};
|
||||
if (reg_nr < 0)
|
||||
return NULL;
|
||||
|
@ -1663,11 +1674,11 @@ sh_do_pseudo_register (int regnum)
|
|||
{
|
||||
if (regnum < NUM_REGS || regnum >= NUM_REGS + NUM_PSEUDO_REGS)
|
||||
internal_error ("Invalid pseudo register number %d\n", regnum);
|
||||
else if (regnum >= NUM_REGS &&
|
||||
regnum < gdbarch_tdep (current_gdbarch)->FV0_REGNUM)
|
||||
else if (regnum >= gdbarch_tdep (current_gdbarch)->DR0_REGNUM
|
||||
&& regnum < gdbarch_tdep (current_gdbarch)->DR_LAST_REGNUM)
|
||||
do_dr_register_info (regnum);
|
||||
else if (regnum >= gdbarch_tdep (current_gdbarch)->FV0_REGNUM &&
|
||||
regnum <= gdbarch_tdep (current_gdbarch)->FV_LAST_REGNUM)
|
||||
else if (regnum >= gdbarch_tdep (current_gdbarch)->FV0_REGNUM
|
||||
&& regnum <= gdbarch_tdep (current_gdbarch)->FV_LAST_REGNUM)
|
||||
do_fv_register_info (regnum);
|
||||
}
|
||||
|
||||
|
@ -1891,10 +1902,20 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
|||
tdep->DR_LAST_REGNUM = -1;
|
||||
tdep->FV0_REGNUM = -1;
|
||||
tdep->FV_LAST_REGNUM = -1;
|
||||
|
||||
set_gdbarch_fp0_regnum (gdbarch, -1);
|
||||
set_gdbarch_num_pseudo_regs (gdbarch, 0);
|
||||
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_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_fetch_pseudo_register (gdbarch, sh_fetch_pseudo_register);
|
||||
set_gdbarch_store_pseudo_register (gdbarch, sh_store_pseudo_register);
|
||||
print_sh_insn = gdb_print_insn_sh;
|
||||
|
||||
switch (info.bfd_arch_info->mach)
|
||||
|
@ -2042,23 +2063,16 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
|||
set_gdbarch_read_sp (gdbarch, generic_target_read_sp);
|
||||
set_gdbarch_write_sp (gdbarch, generic_target_write_sp);
|
||||
|
||||
set_gdbarch_num_regs (gdbarch, 59);
|
||||
set_gdbarch_sp_regnum (gdbarch, 15);
|
||||
set_gdbarch_fp_regnum (gdbarch, 14);
|
||||
set_gdbarch_pc_regnum (gdbarch, 16);
|
||||
set_gdbarch_register_name (gdbarch, sh_register_name);
|
||||
set_gdbarch_register_size (gdbarch, 4);
|
||||
set_gdbarch_register_bytes (gdbarch, NUM_REGS * 4);
|
||||
set_gdbarch_register_virtual_type (gdbarch, sh_register_virtual_type);
|
||||
|
||||
set_gdbarch_ptr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_long_long_bit (gdbarch, 8 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_long_double_bit (gdbarch, 16 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_long_double_bit (gdbarch, 16 * TARGET_CHAR_BIT);/*??should be 8?*/
|
||||
|
||||
set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
|
||||
set_gdbarch_call_dummy_length (gdbarch, 0);
|
||||
|
@ -2094,8 +2108,6 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
|||
set_gdbarch_function_start_offset (gdbarch, 0);
|
||||
set_gdbarch_breakpoint_from_pc (gdbarch, sh_breakpoint_from_pc);
|
||||
|
||||
set_gdbarch_fetch_pseudo_register (gdbarch, sh_fetch_pseudo_register);
|
||||
set_gdbarch_store_pseudo_register (gdbarch, sh_store_pseudo_register);
|
||||
set_gdbarch_frame_args_skip (gdbarch, 0);
|
||||
set_gdbarch_frameless_function_invocation (gdbarch, frameless_look_for_prologue);
|
||||
set_gdbarch_frame_chain (gdbarch, sh_frame_chain);
|
||||
|
@ -2107,6 +2119,7 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
|||
set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
|
||||
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
|
||||
set_gdbarch_ieee_float (gdbarch, 1);
|
||||
tm_print_insn = print_sh_insn;
|
||||
|
||||
return gdbarch;
|
||||
}
|
||||
|
@ -2117,7 +2130,6 @@ _initialize_sh_tdep (void)
|
|||
struct cmd_list_element *c;
|
||||
|
||||
register_gdbarch_init (bfd_arch_sh, sh_gdbarch_init);
|
||||
tm_print_insn = print_sh_insn;
|
||||
|
||||
add_com ("regs", class_vars, sh_show_regs_command, "Print all registers");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue