|
|
|
@ -69,8 +69,6 @@ static const char *const sh_cc_enum[] = {
|
|
|
|
|
|
|
|
|
|
static const char *sh_active_calling_convention = sh_cc_gcc;
|
|
|
|
|
|
|
|
|
|
static void (*sh_show_regs) (struct frame_info *);
|
|
|
|
|
|
|
|
|
|
#define SH_NUM_REGS 67
|
|
|
|
|
|
|
|
|
|
struct sh_frame_cache
|
|
|
|
@ -1431,714 +1429,6 @@ sh_return_value_fpu (struct gdbarch *gdbarch, struct value *function,
|
|
|
|
|
return RETURN_VALUE_REGISTER_CONVENTION;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Print the registers in a form similar to the E7000. */
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh_generic_show_regs (struct frame_info *frame)
|
|
|
|
|
{
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
|
|
|
|
|
phex (get_frame_register_unsigned (frame,
|
|
|
|
|
gdbarch_pc_regnum
|
|
|
|
|
(get_frame_arch (frame))), 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, PR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" GBR %08lx VBR %08lx MACL %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, GBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, VBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACL_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 14),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 15));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh3_show_regs (struct frame_info *frame)
|
|
|
|
|
{
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
|
|
|
|
|
phex (get_frame_register_unsigned (frame,
|
|
|
|
|
gdbarch_pc_regnum
|
|
|
|
|
(get_frame_arch (frame))), 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, PR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" GBR %08lx VBR %08lx MACL %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, GBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, VBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACL_REGNUM));
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" SSR %08lx SPC %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SSR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SPC_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 14),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 15));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh2e_show_regs (struct frame_info *frame)
|
|
|
|
|
{
|
|
|
|
|
struct gdbarch *gdbarch = get_frame_arch (frame);
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
|
|
|
|
|
phex (get_frame_register_unsigned (frame,
|
|
|
|
|
gdbarch_pc_regnum (gdbarch)), 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, PR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" GBR %08lx VBR %08lx MACL %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, GBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, VBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACL_REGNUM));
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" SSR %08lx SPC %08lx FPUL %08lx FPSCR %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SSR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SPC_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPUL_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 14),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 15));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 0),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 1),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 2),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 3),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 4),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 5),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 6),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 8),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 9),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 10),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 11),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 12),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 13),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 14),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 15));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh2a_show_regs (struct frame_info *frame)
|
|
|
|
|
{
|
|
|
|
|
struct gdbarch *gdbarch = get_frame_arch (frame);
|
|
|
|
|
int pr = get_frame_register_unsigned (frame, FPSCR_REGNUM) & 0x80000;
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
|
|
|
|
|
phex (get_frame_register_unsigned (frame,
|
|
|
|
|
gdbarch_pc_regnum (gdbarch)), 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, PR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" GBR %08lx VBR %08lx TBR %08lx MACL %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, GBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, VBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, TBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACL_REGNUM));
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" SSR %08lx SPC %08lx FPUL %08lx FPSCR %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SSR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SPC_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPUL_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 14),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 15));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(pr ? "DR0-DR6 %08lx%08lx %08lx%08lx %08lx%08lx %08lx%08lx\n"
|
|
|
|
|
: "FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 0),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 1),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 2),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 3),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 4),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 5),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 6),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
(pr ? "DR8-DR14 %08lx%08lx %08lx%08lx %08lx%08lx %08lx%08lx\n"
|
|
|
|
|
: "FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 8),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 9),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 10),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 11),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 12),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 13),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 14),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 15));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("BANK=%-3d\n", (int) get_frame_register_unsigned (frame, BANK_REGNUM));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0b-R7b %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8b-R14b %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 14));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("MACHb=%08lx IVNb=%08lx PRb=%08lx GBRb=%08lx MACLb=%08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 15),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 16),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 17),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 18),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 19));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh2a_nofpu_show_regs (struct frame_info *frame)
|
|
|
|
|
{
|
|
|
|
|
int pr = get_frame_register_unsigned (frame, FPSCR_REGNUM) & 0x80000;
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
|
|
|
|
|
phex (get_frame_register_unsigned (frame,
|
|
|
|
|
gdbarch_pc_regnum
|
|
|
|
|
(get_frame_arch (frame))), 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, PR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" GBR %08lx VBR %08lx TBR %08lx MACL %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, GBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, VBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, TBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACL_REGNUM));
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" SSR %08lx SPC %08lx FPUL %08lx FPSCR %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SSR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SPC_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPUL_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 14),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 15));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("BANK=%-3d\n", (int) get_frame_register_unsigned (frame, BANK_REGNUM));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0b-R7b %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8b-R14b %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 14));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("MACHb=%08lx IVNb=%08lx PRb=%08lx GBRb=%08lx MACLb=%08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 15),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 16),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 17),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 18),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 19));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh3e_show_regs (struct frame_info *frame)
|
|
|
|
|
{
|
|
|
|
|
struct gdbarch *gdbarch = get_frame_arch (frame);
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
|
|
|
|
|
phex (get_frame_register_unsigned (frame,
|
|
|
|
|
gdbarch_pc_regnum (gdbarch)), 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, PR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" GBR %08lx VBR %08lx MACL %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, GBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, VBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACL_REGNUM));
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" SSR %08lx SPC %08lx FPUL %08lx FPSCR %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SSR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SPC_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPUL_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 14),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 15));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 0),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 1),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 2),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 3),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 4),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 5),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 6),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 8),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 9),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 10),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 11),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 12),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 13),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 14),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 15));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh3_dsp_show_regs (struct frame_info *frame)
|
|
|
|
|
{
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
|
|
|
|
|
phex (get_frame_register_unsigned (frame,
|
|
|
|
|
gdbarch_pc_regnum
|
|
|
|
|
(get_frame_arch (frame))), 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, PR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" GBR %08lx VBR %08lx MACL %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, GBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, VBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACL_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" SSR %08lx SPC %08lx DSR %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SSR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SPC_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, DSR_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 14),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 15));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, A0G_REGNUM) & 0xff,
|
|
|
|
|
(long) get_frame_register_unsigned (frame, A0_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, M0_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, X0_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, Y0_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, RS_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MOD_REGNUM));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, A1G_REGNUM) & 0xff,
|
|
|
|
|
(long) get_frame_register_unsigned (frame, A1_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, M1_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, X1_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, Y1_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, RE_REGNUM));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh4_show_regs (struct frame_info *frame)
|
|
|
|
|
{
|
|
|
|
|
struct gdbarch *gdbarch = get_frame_arch (frame);
|
|
|
|
|
int pr = get_frame_register_unsigned (frame, FPSCR_REGNUM) & 0x80000;
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
|
|
|
|
|
phex (get_frame_register_unsigned (frame,
|
|
|
|
|
gdbarch_pc_regnum (gdbarch)), 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, PR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" GBR %08lx VBR %08lx MACL %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, GBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, VBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACL_REGNUM));
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" SSR %08lx SPC %08lx FPUL %08lx FPSCR %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SSR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SPC_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPUL_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 14),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 15));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(pr ? "DR0-DR6 %08lx%08lx %08lx%08lx %08lx%08lx %08lx%08lx\n"
|
|
|
|
|
: "FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 0),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 1),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 2),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 3),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 4),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 5),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 6),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
(pr ? "DR8-DR14 %08lx%08lx %08lx%08lx %08lx%08lx %08lx%08lx\n"
|
|
|
|
|
: "FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 8),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 9),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 10),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 11),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 12),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 13),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 14),
|
|
|
|
|
(long) get_frame_register_unsigned
|
|
|
|
|
(frame, gdbarch_fp0_regnum (gdbarch) + 15));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh4_nofpu_show_regs (struct frame_info *frame)
|
|
|
|
|
{
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
|
|
|
|
|
phex (get_frame_register_unsigned (frame,
|
|
|
|
|
gdbarch_pc_regnum
|
|
|
|
|
(get_frame_arch (frame))), 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, PR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" GBR %08lx VBR %08lx MACL %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, GBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, VBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACL_REGNUM));
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" SSR %08lx SPC %08lx FPUL %08lx FPSCR %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SSR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SPC_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPUL_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 14),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 15));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh_dsp_show_regs (struct frame_info *frame)
|
|
|
|
|
{
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
|
|
|
|
|
phex (get_frame_register_unsigned (frame,
|
|
|
|
|
gdbarch_pc_regnum
|
|
|
|
|
(get_frame_arch (frame))), 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, SR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, PR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
(" GBR %08lx VBR %08lx DSR %08lx MACL %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, GBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, VBR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, DSR_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MACL_REGNUM));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 0),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 1),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 2),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 3),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 4),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 5),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 6),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 7));
|
|
|
|
|
printf_filtered
|
|
|
|
|
("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 8),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 9),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 10),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 11),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 12),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 13),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 14),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, 15));
|
|
|
|
|
|
|
|
|
|
printf_filtered
|
|
|
|
|
("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, A0G_REGNUM) & 0xff,
|
|
|
|
|
(long) get_frame_register_unsigned (frame, A0_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, M0_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, X0_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, Y0_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, RS_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, MOD_REGNUM));
|
|
|
|
|
printf_filtered ("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n",
|
|
|
|
|
(long) get_frame_register_unsigned (frame, A1G_REGNUM) & 0xff,
|
|
|
|
|
(long) get_frame_register_unsigned (frame, A1_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, M1_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, X1_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, Y1_REGNUM),
|
|
|
|
|
(long) get_frame_register_unsigned (frame, RE_REGNUM));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sh_show_regs_command (char *args, int from_tty)
|
|
|
|
|
{
|
|
|
|
|
if (sh_show_regs)
|
|
|
|
|
(*sh_show_regs) (get_current_frame ());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static struct type *
|
|
|
|
|
sh_sh2a_register_type (struct gdbarch *gdbarch, int reg_nr)
|
|
|
|
|
{
|
|
|
|
@ -2927,56 +2217,9 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
|
|
|
|
struct gdbarch *gdbarch;
|
|
|
|
|
struct gdbarch_tdep *tdep;
|
|
|
|
|
|
|
|
|
|
sh_show_regs = sh_generic_show_regs;
|
|
|
|
|
switch (info.bfd_arch_info->mach)
|
|
|
|
|
{
|
|
|
|
|
case bfd_mach_sh2e:
|
|
|
|
|
sh_show_regs = sh2e_show_regs;
|
|
|
|
|
break;
|
|
|
|
|
case bfd_mach_sh2a:
|
|
|
|
|
sh_show_regs = sh2a_show_regs;
|
|
|
|
|
break;
|
|
|
|
|
case bfd_mach_sh2a_nofpu:
|
|
|
|
|
sh_show_regs = sh2a_nofpu_show_regs;
|
|
|
|
|
break;
|
|
|
|
|
case bfd_mach_sh_dsp:
|
|
|
|
|
sh_show_regs = sh_dsp_show_regs;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case bfd_mach_sh3:
|
|
|
|
|
case bfd_mach_sh3_nommu:
|
|
|
|
|
case bfd_mach_sh2a_nofpu_or_sh3_nommu:
|
|
|
|
|
sh_show_regs = sh3_show_regs;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case bfd_mach_sh3e:
|
|
|
|
|
case bfd_mach_sh2a_or_sh3e:
|
|
|
|
|
sh_show_regs = sh3e_show_regs;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case bfd_mach_sh3_dsp:
|
|
|
|
|
case bfd_mach_sh4al_dsp:
|
|
|
|
|
sh_show_regs = sh3_dsp_show_regs;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case bfd_mach_sh4:
|
|
|
|
|
case bfd_mach_sh4a:
|
|
|
|
|
case bfd_mach_sh2a_or_sh4:
|
|
|
|
|
sh_show_regs = sh4_show_regs;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case bfd_mach_sh4_nofpu:
|
|
|
|
|
case bfd_mach_sh4_nommu_nofpu:
|
|
|
|
|
case bfd_mach_sh4a_nofpu:
|
|
|
|
|
case bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu:
|
|
|
|
|
sh_show_regs = sh4_nofpu_show_regs;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case bfd_mach_sh5:
|
|
|
|
|
sh_show_regs = sh64_show_regs;
|
|
|
|
|
/* SH5 is handled entirely in sh64-tdep.c. */
|
|
|
|
|
return sh64_gdbarch_init (info, arches);
|
|
|
|
|
}
|
|
|
|
|
/* SH5 is handled entirely in sh64-tdep.c. */
|
|
|
|
|
if (info.bfd_arch_info->mach == bfd_mach_sh5)
|
|
|
|
|
return sh64_gdbarch_init (info, arches);
|
|
|
|
|
|
|
|
|
|
/* If there is already a candidate, use it. */
|
|
|
|
|
arches = gdbarch_list_lookup_by_info (arches, &info);
|
|
|
|
@ -3166,8 +2409,12 @@ _initialize_sh_tdep (void)
|
|
|
|
|
|
|
|
|
|
gdbarch_register (bfd_arch_sh, sh_gdbarch_init, NULL);
|
|
|
|
|
|
|
|
|
|
add_com ("regs", class_vars, sh_show_regs_command, _("Print all registers"));
|
|
|
|
|
|
|
|
|
|
/* We can't use an alias here because 'info registers' has not yet been
|
|
|
|
|
registered. */
|
|
|
|
|
c = add_com ("regs", class_vars, all_registers_info,
|
|
|
|
|
_("Print all registers"));
|
|
|
|
|
deprecate_cmd (c, "info all-registers");
|
|
|
|
|
|
|
|
|
|
add_prefix_cmd ("sh", no_class, set_sh_command, "SH specific commands.",
|
|
|
|
|
&setshcmdlist, "set sh ", 0, &setlist);
|
|
|
|
|
add_prefix_cmd ("sh", no_class, show_sh_command, "SH specific commands.",
|
|
|
|
|