2007-10-08 Markus Deuling <deuling@de.ibm.com>

* sh-tdep.c (sh_push_dummy_call_fpu, sh_push_dummy_call_nofpu)
	(sh_sh2a_register_type, sh_sh3e_register_type, sh_sh4_register_type)
	(sh_register_reggroup_p, sh_dwarf2_frame_init_reg): Replace
	current_gdbarch by gdbarch.
	(sh_generic_show_regs, sh3_show_reg, 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, sh_frame_cache)
	(sh_frame_prev_register, sh_unwind_sp, sh_unwind_pc): Use FRAME to
	recognize current architecture.
This commit is contained in:
Ulrich Weigand 2007-10-08 12:56:03 +00:00
parent 4a22f64d40
commit b47193f79e
2 changed files with 114 additions and 90 deletions

View File

@ -1,3 +1,15 @@
2007-10-08 Markus Deuling <deuling@de.ibm.com>
* sh-tdep.c (sh_push_dummy_call_fpu, sh_push_dummy_call_nofpu)
(sh_sh2a_register_type, sh_sh3e_register_type, sh_sh4_register_type)
(sh_register_reggroup_p, sh_dwarf2_frame_init_reg): Replace
current_gdbarch by gdbarch.
(sh_generic_show_regs, sh3_show_reg, 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, sh_frame_cache)
(sh_frame_prev_register, sh_unwind_sp, sh_unwind_pc): Use FRAME to
recognize current architecture.
2007-10-08 Markus Deuling <deuling@de.ibm.com>
* remote.c (init_remote_state, fetch_register_using_p)

View File

@ -1092,7 +1092,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch,
register, increments the val and len values accordingly
and then proceeds as normal by writing the second 32 bits
into the next register. */
if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_LITTLE
if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_LITTLE
&& TYPE_LENGTH (type) == 2 * reg_size)
{
regcache_cooked_write_unsigned (regcache, flt_argreg + 1,
@ -1121,7 +1121,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch,
/* Update stack pointer. */
regcache_cooked_write_unsigned (regcache,
gdbarch_sp_regnum (current_gdbarch), sp);
gdbarch_sp_regnum (gdbarch), sp);
return sp;
}
@ -1192,7 +1192,7 @@ sh_push_dummy_call_nofpu (struct gdbarch *gdbarch,
/* Update stack pointer. */
regcache_cooked_write_unsigned (regcache,
gdbarch_sp_regnum (current_gdbarch), sp);
gdbarch_sp_regnum (gdbarch), sp);
return sp;
}
@ -1325,7 +1325,8 @@ sh_generic_show_regs (struct frame_info *frame)
printf_filtered
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
paddr (get_frame_register_unsigned (frame,
gdbarch_pc_regnum (current_gdbarch))),
gdbarch_pc_regnum
(get_frame_arch (frame)))),
(long) get_frame_register_unsigned (frame, SR_REGNUM),
(long) get_frame_register_unsigned (frame, PR_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
@ -1364,7 +1365,8 @@ sh3_show_regs (struct frame_info *frame)
printf_filtered
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
paddr (get_frame_register_unsigned (frame,
gdbarch_pc_regnum (current_gdbarch))),
gdbarch_pc_regnum
(get_frame_arch (frame)))),
(long) get_frame_register_unsigned (frame, SR_REGNUM),
(long) get_frame_register_unsigned (frame, PR_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
@ -1404,10 +1406,11 @@ sh3_show_regs (struct frame_info *frame)
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",
paddr (get_frame_register_unsigned (frame,
gdbarch_pc_regnum (current_gdbarch))),
gdbarch_pc_regnum (gdbarch))),
(long) get_frame_register_unsigned (frame, SR_REGNUM),
(long) get_frame_register_unsigned (frame, PR_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
@ -1448,50 +1451,51 @@ sh2e_show_regs (struct frame_info *frame)
printf_filtered
("FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 0),
(frame, gdbarch_fp0_regnum (gdbarch) + 0),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 1),
(frame, gdbarch_fp0_regnum (gdbarch) + 1),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 2),
(frame, gdbarch_fp0_regnum (gdbarch) + 2),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 3),
(frame, gdbarch_fp0_regnum (gdbarch) + 3),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 4),
(frame, gdbarch_fp0_regnum (gdbarch) + 4),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 5),
(frame, gdbarch_fp0_regnum (gdbarch) + 5),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 6),
(frame, gdbarch_fp0_regnum (gdbarch) + 6),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 7));
(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 (current_gdbarch) + 8),
(frame, gdbarch_fp0_regnum (gdbarch) + 8),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 9),
(frame, gdbarch_fp0_regnum (gdbarch) + 9),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 10),
(frame, gdbarch_fp0_regnum (gdbarch) + 10),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 11),
(frame, gdbarch_fp0_regnum (gdbarch) + 11),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 12),
(frame, gdbarch_fp0_regnum (gdbarch) + 12),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 13),
(frame, gdbarch_fp0_regnum (gdbarch) + 13),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 14),
(frame, gdbarch_fp0_regnum (gdbarch) + 14),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 15));
(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",
paddr (get_frame_register_unsigned (frame,
gdbarch_pc_regnum (current_gdbarch))),
gdbarch_pc_regnum (gdbarch))),
(long) get_frame_register_unsigned (frame, SR_REGNUM),
(long) get_frame_register_unsigned (frame, PR_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
@ -1534,40 +1538,40 @@ sh2a_show_regs (struct frame_info *frame)
(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 (current_gdbarch) + 0),
(frame, gdbarch_fp0_regnum (gdbarch) + 0),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 1),
(frame, gdbarch_fp0_regnum (gdbarch) + 1),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 2),
(frame, gdbarch_fp0_regnum (gdbarch) + 2),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 3),
(frame, gdbarch_fp0_regnum (gdbarch) + 3),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 4),
(frame, gdbarch_fp0_regnum (gdbarch) + 4),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 5),
(frame, gdbarch_fp0_regnum (gdbarch) + 5),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 6),
(frame, gdbarch_fp0_regnum (gdbarch) + 6),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 7));
(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 (current_gdbarch) + 8),
(frame, gdbarch_fp0_regnum (gdbarch) + 8),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 9),
(frame, gdbarch_fp0_regnum (gdbarch) + 9),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 10),
(frame, gdbarch_fp0_regnum (gdbarch) + 10),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 11),
(frame, gdbarch_fp0_regnum (gdbarch) + 11),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 12),
(frame, gdbarch_fp0_regnum (gdbarch) + 12),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 13),
(frame, gdbarch_fp0_regnum (gdbarch) + 13),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 14),
(frame, gdbarch_fp0_regnum (gdbarch) + 14),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 15));
(frame, gdbarch_fp0_regnum (gdbarch) + 15));
printf_filtered
("BANK=%-3d\n", (int) get_frame_register_unsigned (frame, BANK_REGNUM));
printf_filtered
@ -1606,7 +1610,8 @@ sh2a_nofpu_show_regs (struct frame_info *frame)
printf_filtered
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
paddr (get_frame_register_unsigned (frame,
gdbarch_pc_regnum (current_gdbarch))),
gdbarch_pc_regnum
(get_frame_arch (frame)))),
(long) get_frame_register_unsigned (frame, SR_REGNUM),
(long) get_frame_register_unsigned (frame, PR_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
@ -1678,10 +1683,11 @@ sh2a_nofpu_show_regs (struct frame_info *frame)
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",
paddr (get_frame_register_unsigned (frame,
gdbarch_pc_regnum (current_gdbarch))),
gdbarch_pc_regnum (gdbarch))),
(long) get_frame_register_unsigned (frame, SR_REGNUM),
(long) get_frame_register_unsigned (frame, PR_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
@ -1722,39 +1728,39 @@ sh3e_show_regs (struct frame_info *frame)
printf_filtered
("FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 0),
(frame, gdbarch_fp0_regnum (gdbarch) + 0),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 1),
(frame, gdbarch_fp0_regnum (gdbarch) + 1),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 2),
(frame, gdbarch_fp0_regnum (gdbarch) + 2),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 3),
(frame, gdbarch_fp0_regnum (gdbarch) + 3),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 4),
(frame, gdbarch_fp0_regnum (gdbarch) + 4),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 5),
(frame, gdbarch_fp0_regnum (gdbarch) + 5),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 6),
(frame, gdbarch_fp0_regnum (gdbarch) + 6),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 7));
(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 (current_gdbarch) + 8),
(frame, gdbarch_fp0_regnum (gdbarch) + 8),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 9),
(frame, gdbarch_fp0_regnum (gdbarch) + 9),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 10),
(frame, gdbarch_fp0_regnum (gdbarch) + 10),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 11),
(frame, gdbarch_fp0_regnum (gdbarch) + 11),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 12),
(frame, gdbarch_fp0_regnum (gdbarch) + 12),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 13),
(frame, gdbarch_fp0_regnum (gdbarch) + 13),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 14),
(frame, gdbarch_fp0_regnum (gdbarch) + 14),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 15));
(frame, gdbarch_fp0_regnum (gdbarch) + 15));
}
static void
@ -1763,7 +1769,8 @@ sh3_dsp_show_regs (struct frame_info *frame)
printf_filtered
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
paddr (get_frame_register_unsigned (frame,
gdbarch_pc_regnum (current_gdbarch))),
gdbarch_pc_regnum
(get_frame_arch (frame)))),
(long) get_frame_register_unsigned (frame, SR_REGNUM),
(long) get_frame_register_unsigned (frame, PR_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
@ -1823,12 +1830,13 @@ sh3_dsp_show_regs (struct frame_info *frame)
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",
paddr (get_frame_register_unsigned (frame,
gdbarch_pc_regnum (current_gdbarch))),
gdbarch_pc_regnum (gdbarch))),
(long) get_frame_register_unsigned (frame, SR_REGNUM),
(long) get_frame_register_unsigned (frame, PR_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
@ -1870,40 +1878,40 @@ sh4_show_regs (struct frame_info *frame)
(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 (current_gdbarch) + 0),
(frame, gdbarch_fp0_regnum (gdbarch) + 0),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 1),
(frame, gdbarch_fp0_regnum (gdbarch) + 1),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 2),
(frame, gdbarch_fp0_regnum (gdbarch) + 2),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 3),
(frame, gdbarch_fp0_regnum (gdbarch) + 3),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 4),
(frame, gdbarch_fp0_regnum (gdbarch) + 4),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 5),
(frame, gdbarch_fp0_regnum (gdbarch) + 5),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 6),
(frame, gdbarch_fp0_regnum (gdbarch) + 6),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 7));
(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 (current_gdbarch) + 8),
(frame, gdbarch_fp0_regnum (gdbarch) + 8),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 9),
(frame, gdbarch_fp0_regnum (gdbarch) + 9),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 10),
(frame, gdbarch_fp0_regnum (gdbarch) + 10),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 11),
(frame, gdbarch_fp0_regnum (gdbarch) + 11),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 12),
(frame, gdbarch_fp0_regnum (gdbarch) + 12),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 13),
(frame, gdbarch_fp0_regnum (gdbarch) + 13),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 14),
(frame, gdbarch_fp0_regnum (gdbarch) + 14),
(long) get_frame_register_unsigned
(frame, gdbarch_fp0_regnum (current_gdbarch) + 15));
(frame, gdbarch_fp0_regnum (gdbarch) + 15));
}
static void
@ -1912,7 +1920,8 @@ sh4_nofpu_show_regs (struct frame_info *frame)
printf_filtered
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
paddr (get_frame_register_unsigned (frame,
gdbarch_pc_regnum (current_gdbarch))),
gdbarch_pc_regnum
(get_frame_arch (frame)))),
(long) get_frame_register_unsigned (frame, SR_REGNUM),
(long) get_frame_register_unsigned (frame, PR_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
@ -1957,7 +1966,8 @@ sh_dsp_show_regs (struct frame_info *frame)
printf_filtered
(" PC %s SR %08lx PR %08lx MACH %08lx\n",
paddr (get_frame_register_unsigned (frame,
gdbarch_pc_regnum (current_gdbarch))),
gdbarch_pc_regnum
(get_frame_arch (frame)))),
(long) get_frame_register_unsigned (frame, SR_REGNUM),
(long) get_frame_register_unsigned (frame, PR_REGNUM),
(long) get_frame_register_unsigned (frame, MACH_REGNUM));
@ -2018,7 +2028,7 @@ sh_show_regs_command (char *args, int from_tty)
static struct type *
sh_sh2a_register_type (struct gdbarch *gdbarch, int reg_nr)
{
if ((reg_nr >= gdbarch_fp0_regnum (current_gdbarch)
if ((reg_nr >= gdbarch_fp0_regnum (gdbarch)
&& (reg_nr <= FP_LAST_REGNUM)) || (reg_nr == FPUL_REGNUM))
return builtin_type_float;
else if (reg_nr >= DR0_REGNUM && reg_nr <= DR_LAST_REGNUM)
@ -2032,7 +2042,7 @@ sh_sh2a_register_type (struct gdbarch *gdbarch, int reg_nr)
static struct type *
sh_sh3e_register_type (struct gdbarch *gdbarch, int reg_nr)
{
if ((reg_nr >= gdbarch_fp0_regnum (current_gdbarch)
if ((reg_nr >= gdbarch_fp0_regnum (gdbarch)
&& (reg_nr <= FP_LAST_REGNUM)) || (reg_nr == FPUL_REGNUM))
return builtin_type_float;
else
@ -2051,7 +2061,7 @@ sh_sh4_build_float_register_type (int high)
static struct type *
sh_sh4_register_type (struct gdbarch *gdbarch, int reg_nr)
{
if ((reg_nr >= gdbarch_fp0_regnum (current_gdbarch)
if ((reg_nr >= gdbarch_fp0_regnum (gdbarch)
&& (reg_nr <= FP_LAST_REGNUM)) || (reg_nr == FPUL_REGNUM))
return builtin_type_float;
else if (reg_nr >= DR0_REGNUM && reg_nr <= DR_LAST_REGNUM)
@ -2076,8 +2086,8 @@ int
sh_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
struct reggroup *reggroup)
{
if (gdbarch_register_name (current_gdbarch, regnum) == NULL
|| *gdbarch_register_name (current_gdbarch, regnum) == '\0')
if (gdbarch_register_name (gdbarch, regnum) == NULL
|| *gdbarch_register_name (gdbarch, regnum) == '\0')
return 0;
if (reggroup == float_reggroup
@ -2333,11 +2343,11 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
struct frame_info *next_frame)
{
/* Mark the PC as the destination for the return address. */
if (regnum == gdbarch_pc_regnum (current_gdbarch))
if (regnum == gdbarch_pc_regnum (gdbarch))
reg->how = DWARF2_FRAME_REG_RA;
/* Mark the stack pointer as the call frame address. */
else if (regnum == gdbarch_sp_regnum (current_gdbarch))
else if (regnum == gdbarch_sp_regnum (gdbarch))
reg->how = DWARF2_FRAME_REG_CFA;
/* The above was taken from the default init_reg in dwarf2-frame.c
@ -2440,7 +2450,8 @@ sh_frame_cache (struct frame_info *next_frame, void **this_cache)
frame by looking at the stack pointer. For truly "frameless"
functions this might work too. */
cache->base = frame_unwind_register_unsigned
(next_frame, gdbarch_sp_regnum (current_gdbarch));
(next_frame,
gdbarch_sp_regnum (get_frame_arch (next_frame)));
}
/* Now that we have the base address for the stack frame we can
@ -2462,11 +2473,12 @@ sh_frame_prev_register (struct frame_info *next_frame, void **this_cache,
enum lval_type *lvalp, CORE_ADDR *addrp,
int *realnump, gdb_byte *valuep)
{
struct gdbarch *gdbarch = get_frame_arch (next_frame);
struct sh_frame_cache *cache = sh_frame_cache (next_frame, this_cache);
gdb_assert (regnum >= 0);
if (regnum == gdbarch_sp_regnum (current_gdbarch) && cache->saved_sp)
if (regnum == gdbarch_sp_regnum (gdbarch) && cache->saved_sp)
{
*optimizedp = 0;
*lvalp = not_lval;
@ -2483,7 +2495,7 @@ sh_frame_prev_register (struct frame_info *next_frame, void **this_cache,
/* The PC of the previous frame is stored in the PR register of
the current frame. Frob regnum so that we pull the value from
the correct place. */
if (regnum == gdbarch_pc_regnum (current_gdbarch))
if (regnum == gdbarch_pc_regnum (gdbarch))
regnum = PR_REGNUM;
if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1)
@ -2496,7 +2508,7 @@ sh_frame_prev_register (struct frame_info *next_frame, void **this_cache,
{
/* Read the value in from memory. */
read_memory (*addrp, valuep,
register_size (current_gdbarch, regnum));
register_size (gdbarch, regnum));
}
return;
}
@ -2538,14 +2550,14 @@ static CORE_ADDR
sh_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
{
return frame_unwind_register_unsigned (next_frame,
gdbarch_sp_regnum (current_gdbarch));
gdbarch_sp_regnum (gdbarch));
}
static CORE_ADDR
sh_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
{
return frame_unwind_register_unsigned (next_frame,
gdbarch_pc_regnum (current_gdbarch));
gdbarch_pc_regnum (gdbarch));
}
static struct frame_id