* sh-tdep.h (sh_show_regs): Add FRAME parameter.

* sh-tdep.c (sh_show_regs): Likewise.
	(sh_show_regs_command): Pass current frame to sh_show_regs routine.
	(sh_generic_show_regs): Add FRAME parameter.  Use register
	values from that frame instead of calling read_register.
	(sh3_show_regs, sh2e_show_regs, sh2a_show_regs, sh2a_nofpu_show_regs,
	sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh4_nofpu_show_regs,
	sh_dsp_show_regs): Likewise.
	* sh64-tdep.c (sh64_show_media_regs, sh64_show_compact_regs,
	sh64_show_regs): Likewise.
This commit is contained in:
Ulrich Weigand 2007-06-15 22:31:01 +00:00
parent a961495892
commit c458d6db4b
4 changed files with 638 additions and 491 deletions

View file

@ -1,3 +1,16 @@
2007-06-15 Ulrich Weigand <uweigand@de.ibm.com>
* sh-tdep.h (sh_show_regs): Add FRAME parameter.
* sh-tdep.c (sh_show_regs): Likewise.
(sh_show_regs_command): Pass current frame to sh_show_regs routine.
(sh_generic_show_regs): Add FRAME parameter. Use register
values from that frame instead of calling read_register.
(sh3_show_regs, sh2e_show_regs, sh2a_show_regs, sh2a_nofpu_show_regs,
sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh4_nofpu_show_regs,
sh_dsp_show_regs): Likewise.
* sh64-tdep.c (sh64_show_media_regs, sh64_show_compact_regs,
sh64_show_regs): Likewise.
2007-06-15 Ulrich Weigand <uweigand@de.ibm.com>
* mips-tdep.c (deprecated_mips_set_processor_regs_hack): Read from

File diff suppressed because it is too large Load diff

View file

@ -85,6 +85,6 @@ enum
};
extern gdbarch_init_ftype sh64_gdbarch_init;
extern void sh64_show_regs (void);
extern void sh64_show_regs (struct frame_info *);
#endif /* SH_TDEP_H */

View file

@ -1324,93 +1324,103 @@ sh64_return_value (struct gdbarch *gdbarch, struct type *type,
}
static void
sh64_show_media_regs (void)
sh64_show_media_regs (struct frame_info *frame)
{
int i;
printf_filtered ("PC=%s SR=%016llx \n",
paddr (read_register (PC_REGNUM)),
(long long) read_register (SR_REGNUM));
printf_filtered
("PC=%s SR=%016llx \n",
paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
(long long) get_frame_register_unsigned (frame, SR_REGNUM));
printf_filtered ("SSR=%016llx SPC=%016llx \n",
(long long) read_register (SSR_REGNUM),
(long long) read_register (SPC_REGNUM));
printf_filtered ("FPSCR=%016lx\n ",
(long) read_register (FPSCR_REGNUM));
printf_filtered
("SSR=%016llx SPC=%016llx \n",
(long long) get_frame_register_unsigned (frame, SSR_REGNUM),
(long long) get_frame_register_unsigned (frame, SPC_REGNUM));
printf_filtered
("FPSCR=%016lx\n ",
(long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
for (i = 0; i < 64; i = i + 4)
printf_filtered ("\nR%d-R%d %016llx %016llx %016llx %016llx\n",
i, i + 3,
(long long) read_register (i + 0),
(long long) read_register (i + 1),
(long long) read_register (i + 2),
(long long) read_register (i + 3));
printf_filtered
("\nR%d-R%d %016llx %016llx %016llx %016llx\n",
i, i + 3,
(long long) get_frame_register_unsigned (frame, i + 0),
(long long) get_frame_register_unsigned (frame, i + 1),
(long long) get_frame_register_unsigned (frame, i + 2),
(long long) get_frame_register_unsigned (frame, i + 3));
printf_filtered ("\n");
for (i = 0; i < 64; i = i + 8)
printf_filtered ("FR%d-FR%d %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
i, i + 7,
(long) read_register (FP0_REGNUM + i + 0),
(long) read_register (FP0_REGNUM + i + 1),
(long) read_register (FP0_REGNUM + i + 2),
(long) read_register (FP0_REGNUM + i + 3),
(long) read_register (FP0_REGNUM + i + 4),
(long) read_register (FP0_REGNUM + i + 5),
(long) read_register (FP0_REGNUM + i + 6),
(long) read_register (FP0_REGNUM + i + 7));
printf_filtered
("FR%d-FR%d %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
i, i + 7,
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 0),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 1),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 2),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 3),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 4),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 5),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 6),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 7));
}
static void
sh64_show_compact_regs (void)
sh64_show_compact_regs (struct frame_info *frame)
{
int i;
printf_filtered ("PC=%s \n",
paddr (read_register (PC_C_REGNUM)));
printf_filtered
("PC=%s \n",
paddr (get_frame_register_unsigned (frame, PC_C_REGNUM)));
printf_filtered ("GBR=%08lx MACH=%08lx MACL=%08lx PR=%08lx T=%08lx\n",
(long) read_register (GBR_C_REGNUM),
(long) read_register (MACH_C_REGNUM),
(long) read_register (MACL_C_REGNUM),
(long) read_register (PR_C_REGNUM),
(long) read_register (T_C_REGNUM));
printf_filtered ("FPSCR=%08lx FPUL=%08lx\n",
(long) read_register (FPSCR_C_REGNUM),
(long) read_register (FPUL_C_REGNUM));
printf_filtered
("GBR=%08lx MACH=%08lx MACL=%08lx PR=%08lx T=%08lx\n",
(long) get_frame_register_unsigned (frame, GBR_C_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_C_REGNUM),
(long) get_frame_register_unsigned (frame, MACL_C_REGNUM),
(long) get_frame_register_unsigned (frame, PR_C_REGNUM),
(long) get_frame_register_unsigned (frame, T_C_REGNUM));
printf_filtered
("FPSCR=%08lx FPUL=%08lx\n",
(long) get_frame_register_unsigned (frame, FPSCR_C_REGNUM),
(long) get_frame_register_unsigned (frame, FPUL_C_REGNUM));
for (i = 0; i < 16; i = i + 4)
printf_filtered ("\nR%d-R%d %08lx %08lx %08lx %08lx\n",
i, i + 3,
(long) read_register (i + 0),
(long) read_register (i + 1),
(long) read_register (i + 2),
(long) read_register (i + 3));
printf_filtered
("\nR%d-R%d %08lx %08lx %08lx %08lx\n",
i, i + 3,
(long) get_frame_register_unsigned (frame, i + 0),
(long) get_frame_register_unsigned (frame, i + 1),
(long) get_frame_register_unsigned (frame, i + 2),
(long) get_frame_register_unsigned (frame, i + 3));
printf_filtered ("\n");
for (i = 0; i < 16; i = i + 8)
printf_filtered ("FR%d-FR%d %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
i, i + 7,
(long) read_register (FP0_REGNUM + i + 0),
(long) read_register (FP0_REGNUM + i + 1),
(long) read_register (FP0_REGNUM + i + 2),
(long) read_register (FP0_REGNUM + i + 3),
(long) read_register (FP0_REGNUM + i + 4),
(long) read_register (FP0_REGNUM + i + 5),
(long) read_register (FP0_REGNUM + i + 6),
(long) read_register (FP0_REGNUM + i + 7));
printf_filtered
("FR%d-FR%d %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
i, i + 7,
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 0),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 1),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 2),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 3),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 4),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 5),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 6),
(long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 7));
}
/* FIXME!!! This only shows the registers for shmedia, excluding the
pseudo registers. */
void
sh64_show_regs (void)
sh64_show_regs (struct frame_info *frame)
{
if (pc_is_isa32 (get_frame_pc (get_selected_frame (NULL))))
sh64_show_media_regs ();
if (pc_is_isa32 (get_frame_pc (frame)))
sh64_show_media_regs (frame);
else
sh64_show_compact_regs ();
sh64_show_compact_regs (frame);
}
/* *INDENT-OFF* */