|
|
|
@ -77,8 +77,7 @@ struct sh_frame_cache |
|
|
|
static const char * |
|
|
|
sh_generic_register_name (int reg_nr) |
|
|
|
{ |
|
|
|
static char *register_names[] = |
|
|
|
{ |
|
|
|
static char *register_names[] = { |
|
|
|
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", |
|
|
|
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", |
|
|
|
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr", |
|
|
|
@ -99,8 +98,7 @@ sh_generic_register_name (int reg_nr) |
|
|
|
static const char * |
|
|
|
sh_sh_register_name (int reg_nr) |
|
|
|
{ |
|
|
|
static char *register_names[] = |
|
|
|
{ |
|
|
|
static char *register_names[] = { |
|
|
|
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", |
|
|
|
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", |
|
|
|
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr", |
|
|
|
@ -121,8 +119,7 @@ sh_sh_register_name (int reg_nr) |
|
|
|
static const char * |
|
|
|
sh_sh3_register_name (int reg_nr) |
|
|
|
{ |
|
|
|
static char *register_names[] = |
|
|
|
{ |
|
|
|
static char *register_names[] = { |
|
|
|
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", |
|
|
|
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", |
|
|
|
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr", |
|
|
|
@ -143,8 +140,7 @@ sh_sh3_register_name (int reg_nr) |
|
|
|
static const char * |
|
|
|
sh_sh3e_register_name (int reg_nr) |
|
|
|
{ |
|
|
|
static char *register_names[] = |
|
|
|
{ |
|
|
|
static char *register_names[] = { |
|
|
|
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", |
|
|
|
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", |
|
|
|
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr", |
|
|
|
@ -165,8 +161,7 @@ sh_sh3e_register_name (int reg_nr) |
|
|
|
static const char * |
|
|
|
sh_sh2e_register_name (int reg_nr) |
|
|
|
{ |
|
|
|
static char *register_names[] = |
|
|
|
{ |
|
|
|
static char *register_names[] = { |
|
|
|
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", |
|
|
|
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", |
|
|
|
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr", |
|
|
|
@ -187,8 +182,7 @@ sh_sh2e_register_name (int reg_nr) |
|
|
|
static const char * |
|
|
|
sh_sh_dsp_register_name (int reg_nr) |
|
|
|
{ |
|
|
|
static char *register_names[] = |
|
|
|
{ |
|
|
|
static char *register_names[] = { |
|
|
|
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", |
|
|
|
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", |
|
|
|
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr", |
|
|
|
@ -209,8 +203,7 @@ sh_sh_dsp_register_name (int reg_nr) |
|
|
|
static const char * |
|
|
|
sh_sh3_dsp_register_name (int reg_nr) |
|
|
|
{ |
|
|
|
static char *register_names[] = |
|
|
|
{ |
|
|
|
static char *register_names[] = { |
|
|
|
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", |
|
|
|
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", |
|
|
|
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr", |
|
|
|
@ -232,8 +225,7 @@ sh_sh3_dsp_register_name (int reg_nr) |
|
|
|
static const char * |
|
|
|
sh_sh4_register_name (int reg_nr) |
|
|
|
{ |
|
|
|
static char *register_names[] = |
|
|
|
{ |
|
|
|
static char *register_names[] = { |
|
|
|
/* general registers 0-15 */ |
|
|
|
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", |
|
|
|
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", |
|
|
|
@ -705,7 +697,8 @@ sh_next_flt_argreg (int len) |
|
|
|
int argreg; |
|
|
|
|
|
|
|
/* First search for the next free register. */ |
|
|
|
for (argreg = 0; argreg <= FLOAT_ARGLAST_REGNUM - FLOAT_ARG0_REGNUM; ++argreg) |
|
|
|
for (argreg = 0; argreg <= FLOAT_ARGLAST_REGNUM - FLOAT_ARG0_REGNUM; |
|
|
|
++argreg) |
|
|
|
if (!flt_argreg_array[argreg]) |
|
|
|
break; |
|
|
|
|
|
|
|
@ -763,8 +756,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch, |
|
|
|
|
|
|
|
if (struct_return) |
|
|
|
regcache_cooked_write_unsigned (regcache, |
|
|
|
STRUCT_RETURN_REGNUM, |
|
|
|
struct_addr); |
|
|
|
STRUCT_RETURN_REGNUM, struct_addr); |
|
|
|
|
|
|
|
/* make room on stack for args */ |
|
|
|
sp -= sh_stack_allocsize (nargs, args); |
|
|
|
@ -795,8 +787,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch, |
|
|
|
{ |
|
|
|
if ((TYPE_CODE (type) == TYPE_CODE_FLT |
|
|
|
&& flt_argreg > FLOAT_ARGLAST_REGNUM) |
|
|
|
|| argreg > ARGLAST_REGNUM |
|
|
|
|| pass_on_stack) |
|
|
|
|| argreg > ARGLAST_REGNUM || pass_on_stack) |
|
|
|
{ |
|
|
|
/* The remainder of the data goes entirely on the stack,
|
|
|
|
4-byte aligned. */ |
|
|
|
@ -858,8 +849,7 @@ sh_push_dummy_call_nofpu (struct gdbarch *gdbarch, |
|
|
|
|
|
|
|
if (struct_return) |
|
|
|
regcache_cooked_write_unsigned (regcache, |
|
|
|
STRUCT_RETURN_REGNUM, |
|
|
|
struct_addr); |
|
|
|
STRUCT_RETURN_REGNUM, struct_addr); |
|
|
|
|
|
|
|
/* make room on stack for args */ |
|
|
|
sp -= sh_stack_allocsize (nargs, args); |
|
|
|
@ -1008,24 +998,17 @@ sh_generic_show_regs (void) |
|
|
|
(long) read_register (GBR_REGNUM), |
|
|
|
(long) read_register (VBR_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), |
|
|
|
(long) read_register (1), |
|
|
|
(long) read_register (2), |
|
|
|
(long) read_register (3), |
|
|
|
(long) read_register (4), |
|
|
|
(long) read_register (5), |
|
|
|
(long) read_register (6), |
|
|
|
(long) read_register (7)); |
|
|
|
printf_filtered |
|
|
|
("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), (long) read_register (1), |
|
|
|
(long) read_register (2), (long) read_register (3), |
|
|
|
(long) read_register (4), (long) read_register (5), |
|
|
|
(long) read_register (6), (long) read_register (7)); |
|
|
|
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (8), |
|
|
|
(long) read_register (9), |
|
|
|
(long) read_register (10), |
|
|
|
(long) read_register (11), |
|
|
|
(long) read_register (12), |
|
|
|
(long) read_register (13), |
|
|
|
(long) read_register (14), |
|
|
|
(long) read_register (15)); |
|
|
|
(long) read_register (8), (long) read_register (9), |
|
|
|
(long) read_register (10), (long) read_register (11), |
|
|
|
(long) read_register (12), (long) read_register (13), |
|
|
|
(long) read_register (14), (long) read_register (15)); |
|
|
|
} |
|
|
|
|
|
|
|
static void |
|
|
|
@ -1045,24 +1028,17 @@ sh3_show_regs (void) |
|
|
|
(long) read_register (SSR_REGNUM), |
|
|
|
(long) read_register (SPC_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), |
|
|
|
(long) read_register (1), |
|
|
|
(long) read_register (2), |
|
|
|
(long) read_register (3), |
|
|
|
(long) read_register (4), |
|
|
|
(long) read_register (5), |
|
|
|
(long) read_register (6), |
|
|
|
(long) read_register (7)); |
|
|
|
printf_filtered |
|
|
|
("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), (long) read_register (1), |
|
|
|
(long) read_register (2), (long) read_register (3), |
|
|
|
(long) read_register (4), (long) read_register (5), |
|
|
|
(long) read_register (6), (long) read_register (7)); |
|
|
|
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (8), |
|
|
|
(long) read_register (9), |
|
|
|
(long) read_register (10), |
|
|
|
(long) read_register (11), |
|
|
|
(long) read_register (12), |
|
|
|
(long) read_register (13), |
|
|
|
(long) read_register (14), |
|
|
|
(long) read_register (15)); |
|
|
|
(long) read_register (8), (long) read_register (9), |
|
|
|
(long) read_register (10), (long) read_register (11), |
|
|
|
(long) read_register (12), (long) read_register (13), |
|
|
|
(long) read_register (14), (long) read_register (15)); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -1083,43 +1059,20 @@ sh2e_show_regs (void) |
|
|
|
(long) read_register (FPUL_REGNUM), |
|
|
|
(long) read_register (FPSCR_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), |
|
|
|
(long) read_register (1), |
|
|
|
(long) read_register (2), |
|
|
|
(long) read_register (3), |
|
|
|
(long) read_register (4), |
|
|
|
(long) read_register (5), |
|
|
|
(long) read_register (6), |
|
|
|
(long) read_register (7)); |
|
|
|
printf_filtered |
|
|
|
("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), (long) read_register (1), |
|
|
|
(long) read_register (2), (long) read_register (3), |
|
|
|
(long) read_register (4), (long) read_register (5), |
|
|
|
(long) read_register (6), (long) read_register (7)); |
|
|
|
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (8), |
|
|
|
(long) read_register (9), |
|
|
|
(long) read_register (10), |
|
|
|
(long) read_register (11), |
|
|
|
(long) read_register (12), |
|
|
|
(long) read_register (13), |
|
|
|
(long) read_register (14), |
|
|
|
(long) read_register (15)); |
|
|
|
|
|
|
|
printf_filtered (("FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"), |
|
|
|
(long) read_register (FP0_REGNUM + 0), |
|
|
|
(long) read_register (FP0_REGNUM + 1), |
|
|
|
(long) read_register (FP0_REGNUM + 2), |
|
|
|
(long) read_register (FP0_REGNUM + 3), |
|
|
|
(long) read_register (FP0_REGNUM + 4), |
|
|
|
(long) read_register (FP0_REGNUM + 5), |
|
|
|
(long) read_register (FP0_REGNUM + 6), |
|
|
|
(long) read_register (FP0_REGNUM + 7)); |
|
|
|
printf_filtered (("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"), |
|
|
|
(long) read_register (FP0_REGNUM + 8), |
|
|
|
(long) read_register (FP0_REGNUM + 9), |
|
|
|
(long) read_register (FP0_REGNUM + 10), |
|
|
|
(long) read_register (FP0_REGNUM + 11), |
|
|
|
(long) read_register (FP0_REGNUM + 12), |
|
|
|
(long) read_register (FP0_REGNUM + 13), |
|
|
|
(long) read_register (FP0_REGNUM + 14), |
|
|
|
(long) read_register (FP0_REGNUM + 15)); |
|
|
|
(long) read_register (8), (long) read_register (9), |
|
|
|
(long) read_register (10), (long) read_register (11), |
|
|
|
(long) read_register (12), (long) read_register (13), |
|
|
|
(long) read_register (14), (long) read_register (15)); |
|
|
|
|
|
|
|
printf_filtered (("FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"), (long) read_register (FP0_REGNUM + 0), (long) read_register (FP0_REGNUM + 1), (long) read_register (FP0_REGNUM + 2), (long) read_register (FP0_REGNUM + 3), (long) read_register (FP0_REGNUM + 4), (long) read_register (FP0_REGNUM + 5), (long) read_register (FP0_REGNUM + 6), (long) read_register (FP0_REGNUM + 7)); |
|
|
|
printf_filtered (("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"), (long) read_register (FP0_REGNUM + 8), (long) read_register (FP0_REGNUM + 9), (long) read_register (FP0_REGNUM + 10), (long) read_register (FP0_REGNUM + 11), (long) read_register (FP0_REGNUM + 12), (long) read_register (FP0_REGNUM + 13), (long) read_register (FP0_REGNUM + 14), (long) read_register (FP0_REGNUM + 15)); |
|
|
|
} |
|
|
|
|
|
|
|
static void |
|
|
|
@ -1142,43 +1095,20 @@ sh3e_show_regs (void) |
|
|
|
(long) read_register (FPUL_REGNUM), |
|
|
|
(long) read_register (FPSCR_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), |
|
|
|
(long) read_register (1), |
|
|
|
(long) read_register (2), |
|
|
|
(long) read_register (3), |
|
|
|
(long) read_register (4), |
|
|
|
(long) read_register (5), |
|
|
|
(long) read_register (6), |
|
|
|
(long) read_register (7)); |
|
|
|
printf_filtered |
|
|
|
("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), (long) read_register (1), |
|
|
|
(long) read_register (2), (long) read_register (3), |
|
|
|
(long) read_register (4), (long) read_register (5), |
|
|
|
(long) read_register (6), (long) read_register (7)); |
|
|
|
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (8), |
|
|
|
(long) read_register (9), |
|
|
|
(long) read_register (10), |
|
|
|
(long) read_register (11), |
|
|
|
(long) read_register (12), |
|
|
|
(long) read_register (13), |
|
|
|
(long) read_register (14), |
|
|
|
(long) read_register (15)); |
|
|
|
|
|
|
|
printf_filtered (("FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"), |
|
|
|
(long) read_register (FP0_REGNUM + 0), |
|
|
|
(long) read_register (FP0_REGNUM + 1), |
|
|
|
(long) read_register (FP0_REGNUM + 2), |
|
|
|
(long) read_register (FP0_REGNUM + 3), |
|
|
|
(long) read_register (FP0_REGNUM + 4), |
|
|
|
(long) read_register (FP0_REGNUM + 5), |
|
|
|
(long) read_register (FP0_REGNUM + 6), |
|
|
|
(long) read_register (FP0_REGNUM + 7)); |
|
|
|
printf_filtered (("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"), |
|
|
|
(long) read_register (FP0_REGNUM + 8), |
|
|
|
(long) read_register (FP0_REGNUM + 9), |
|
|
|
(long) read_register (FP0_REGNUM + 10), |
|
|
|
(long) read_register (FP0_REGNUM + 11), |
|
|
|
(long) read_register (FP0_REGNUM + 12), |
|
|
|
(long) read_register (FP0_REGNUM + 13), |
|
|
|
(long) read_register (FP0_REGNUM + 14), |
|
|
|
(long) read_register (FP0_REGNUM + 15)); |
|
|
|
(long) read_register (8), (long) read_register (9), |
|
|
|
(long) read_register (10), (long) read_register (11), |
|
|
|
(long) read_register (12), (long) read_register (13), |
|
|
|
(long) read_register (14), (long) read_register (15)); |
|
|
|
|
|
|
|
printf_filtered (("FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"), (long) read_register (FP0_REGNUM + 0), (long) read_register (FP0_REGNUM + 1), (long) read_register (FP0_REGNUM + 2), (long) read_register (FP0_REGNUM + 3), (long) read_register (FP0_REGNUM + 4), (long) read_register (FP0_REGNUM + 5), (long) read_register (FP0_REGNUM + 6), (long) read_register (FP0_REGNUM + 7)); |
|
|
|
printf_filtered (("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"), (long) read_register (FP0_REGNUM + 8), (long) read_register (FP0_REGNUM + 9), (long) read_register (FP0_REGNUM + 10), (long) read_register (FP0_REGNUM + 11), (long) read_register (FP0_REGNUM + 12), (long) read_register (FP0_REGNUM + 13), (long) read_register (FP0_REGNUM + 14), (long) read_register (FP0_REGNUM + 15)); |
|
|
|
} |
|
|
|
|
|
|
|
static void |
|
|
|
@ -1199,36 +1129,26 @@ sh3_dsp_show_regs (void) |
|
|
|
(long) read_register (SSR_REGNUM), |
|
|
|
(long) read_register (SPC_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered (" DSR=%08lx", |
|
|
|
(long) read_register (DSR_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), |
|
|
|
(long) read_register (1), |
|
|
|
(long) read_register (2), |
|
|
|
(long) read_register (3), |
|
|
|
(long) read_register (4), |
|
|
|
(long) read_register (5), |
|
|
|
(long) read_register (6), |
|
|
|
(long) read_register (7)); |
|
|
|
printf_filtered (" DSR=%08lx", (long) read_register (DSR_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered |
|
|
|
("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), (long) read_register (1), |
|
|
|
(long) read_register (2), (long) read_register (3), |
|
|
|
(long) read_register (4), (long) read_register (5), |
|
|
|
(long) read_register (6), (long) read_register (7)); |
|
|
|
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (8), |
|
|
|
(long) read_register (9), |
|
|
|
(long) read_register (10), |
|
|
|
(long) read_register (11), |
|
|
|
(long) read_register (12), |
|
|
|
(long) read_register (13), |
|
|
|
(long) read_register (14), |
|
|
|
(long) read_register (15)); |
|
|
|
|
|
|
|
printf_filtered ("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n", |
|
|
|
(long) read_register (8), (long) read_register (9), |
|
|
|
(long) read_register (10), (long) read_register (11), |
|
|
|
(long) read_register (12), (long) read_register (13), |
|
|
|
(long) read_register (14), (long) read_register (15)); |
|
|
|
|
|
|
|
printf_filtered |
|
|
|
("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n", |
|
|
|
(long) read_register (A0G_REGNUM) & 0xff, |
|
|
|
(long) read_register (A0_REGNUM), |
|
|
|
(long) read_register (M0_REGNUM), |
|
|
|
(long) read_register (X0_REGNUM), |
|
|
|
(long) read_register (Y0_REGNUM), |
|
|
|
(long) read_register (RS_REGNUM), |
|
|
|
(long) read_register (MOD_REGNUM)); |
|
|
|
(long) read_register (A0_REGNUM), (long) read_register (M0_REGNUM), |
|
|
|
(long) read_register (X0_REGNUM), (long) read_register (Y0_REGNUM), |
|
|
|
(long) read_register (RS_REGNUM), (long) read_register (MOD_REGNUM)); |
|
|
|
printf_filtered ("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n", |
|
|
|
(long) read_register (A1G_REGNUM) & 0xff, |
|
|
|
(long) read_register (A1_REGNUM), |
|
|
|
@ -1259,28 +1179,22 @@ sh4_show_regs (void) |
|
|
|
(long) read_register (FPUL_REGNUM), |
|
|
|
(long) read_register (FPSCR_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), |
|
|
|
(long) read_register (1), |
|
|
|
(long) read_register (2), |
|
|
|
(long) read_register (3), |
|
|
|
(long) read_register (4), |
|
|
|
(long) read_register (5), |
|
|
|
(long) read_register (6), |
|
|
|
(long) read_register (7)); |
|
|
|
printf_filtered |
|
|
|
("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), (long) read_register (1), |
|
|
|
(long) read_register (2), (long) read_register (3), |
|
|
|
(long) read_register (4), (long) read_register (5), |
|
|
|
(long) read_register (6), (long) read_register (7)); |
|
|
|
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (8), |
|
|
|
(long) read_register (9), |
|
|
|
(long) read_register (10), |
|
|
|
(long) read_register (11), |
|
|
|
(long) read_register (12), |
|
|
|
(long) read_register (13), |
|
|
|
(long) read_register (14), |
|
|
|
(long) read_register (15)); |
|
|
|
(long) read_register (8), (long) read_register (9), |
|
|
|
(long) read_register (10), (long) read_register (11), |
|
|
|
(long) read_register (12), (long) read_register (13), |
|
|
|
(long) read_register (14), (long) read_register (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"), |
|
|
|
: |
|
|
|
"FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"), |
|
|
|
(long) read_register (FP0_REGNUM + 0), |
|
|
|
(long) read_register (FP0_REGNUM + 1), |
|
|
|
(long) read_register (FP0_REGNUM + 2), |
|
|
|
@ -1289,9 +1203,9 @@ sh4_show_regs (void) |
|
|
|
(long) read_register (FP0_REGNUM + 5), |
|
|
|
(long) read_register (FP0_REGNUM + 6), |
|
|
|
(long) read_register (FP0_REGNUM + 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"), |
|
|
|
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) read_register (FP0_REGNUM + 8), |
|
|
|
(long) read_register (FP0_REGNUM + 9), |
|
|
|
(long) read_register (FP0_REGNUM + 10), |
|
|
|
@ -1316,36 +1230,26 @@ sh_dsp_show_regs (void) |
|
|
|
(long) read_register (GBR_REGNUM), |
|
|
|
(long) read_register (VBR_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered (" DSR=%08lx", |
|
|
|
(long) read_register (DSR_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), |
|
|
|
(long) read_register (1), |
|
|
|
(long) read_register (2), |
|
|
|
(long) read_register (3), |
|
|
|
(long) read_register (4), |
|
|
|
(long) read_register (5), |
|
|
|
(long) read_register (6), |
|
|
|
(long) read_register (7)); |
|
|
|
printf_filtered (" DSR=%08lx", (long) read_register (DSR_REGNUM)); |
|
|
|
|
|
|
|
printf_filtered |
|
|
|
("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (0), (long) read_register (1), |
|
|
|
(long) read_register (2), (long) read_register (3), |
|
|
|
(long) read_register (4), (long) read_register (5), |
|
|
|
(long) read_register (6), (long) read_register (7)); |
|
|
|
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", |
|
|
|
(long) read_register (8), |
|
|
|
(long) read_register (9), |
|
|
|
(long) read_register (10), |
|
|
|
(long) read_register (11), |
|
|
|
(long) read_register (12), |
|
|
|
(long) read_register (13), |
|
|
|
(long) read_register (14), |
|
|
|
(long) read_register (15)); |
|
|
|
|
|
|
|
printf_filtered ("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n", |
|
|
|
(long) read_register (8), (long) read_register (9), |
|
|
|
(long) read_register (10), (long) read_register (11), |
|
|
|
(long) read_register (12), (long) read_register (13), |
|
|
|
(long) read_register (14), (long) read_register (15)); |
|
|
|
|
|
|
|
printf_filtered |
|
|
|
("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n", |
|
|
|
(long) read_register (A0G_REGNUM) & 0xff, |
|
|
|
(long) read_register (A0_REGNUM), |
|
|
|
(long) read_register (M0_REGNUM), |
|
|
|
(long) read_register (X0_REGNUM), |
|
|
|
(long) read_register (Y0_REGNUM), |
|
|
|
(long) read_register (RS_REGNUM), |
|
|
|
(long) read_register (MOD_REGNUM)); |
|
|
|
(long) read_register (A0_REGNUM), (long) read_register (M0_REGNUM), |
|
|
|
(long) read_register (X0_REGNUM), (long) read_register (Y0_REGNUM), |
|
|
|
(long) read_register (RS_REGNUM), (long) read_register (MOD_REGNUM)); |
|
|
|
printf_filtered ("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n", |
|
|
|
(long) read_register (A1G_REGNUM) & 0xff, |
|
|
|
(long) read_register (A1_REGNUM), |
|
|
|
@ -1368,8 +1272,7 @@ static struct type * |
|
|
|
sh_sh3e_register_type (struct gdbarch *gdbarch, int reg_nr) |
|
|
|
{ |
|
|
|
if ((reg_nr >= FP0_REGNUM |
|
|
|
&& (reg_nr <= FP_LAST_REGNUM)) |
|
|
|
|| (reg_nr == FPUL_REGNUM)) |
|
|
|
&& (reg_nr <= FP_LAST_REGNUM)) || (reg_nr == FPUL_REGNUM)) |
|
|
|
return builtin_type_float; |
|
|
|
else |
|
|
|
return builtin_type_int; |
|
|
|
@ -1388,14 +1291,11 @@ static struct type * |
|
|
|
sh_sh4_register_type (struct gdbarch *gdbarch, int reg_nr) |
|
|
|
{ |
|
|
|
if ((reg_nr >= FP0_REGNUM |
|
|
|
&& (reg_nr <= FP_LAST_REGNUM)) |
|
|
|
|| (reg_nr == FPUL_REGNUM)) |
|
|
|
&& (reg_nr <= FP_LAST_REGNUM)) || (reg_nr == FPUL_REGNUM)) |
|
|
|
return builtin_type_float; |
|
|
|
else if (reg_nr >= DR0_REGNUM |
|
|
|
&& reg_nr <= DR_LAST_REGNUM) |
|
|
|
else if (reg_nr >= DR0_REGNUM && reg_nr <= DR_LAST_REGNUM) |
|
|
|
return builtin_type_double; |
|
|
|
else if (reg_nr >= FV0_REGNUM |
|
|
|
&& reg_nr <= FV_LAST_REGNUM) |
|
|
|
else if (reg_nr >= FV0_REGNUM && reg_nr <= FV_LAST_REGNUM) |
|
|
|
return sh_sh4_build_float_register_type (3); |
|
|
|
else |
|
|
|
return builtin_type_int; |
|
|
|
@ -1437,26 +1337,27 @@ static void |
|
|
|
sh_sh4_register_convert_to_virtual (int regnum, struct type *type, |
|
|
|
char *from, char *to) |
|
|
|
{ |
|
|
|
if (regnum >= DR0_REGNUM |
|
|
|
&& regnum <= DR_LAST_REGNUM) |
|
|
|
if (regnum >= DR0_REGNUM && regnum <= DR_LAST_REGNUM) |
|
|
|
{ |
|
|
|
DOUBLEST val; |
|
|
|
floatformat_to_doublest (&floatformat_ieee_double_littlebyte_bigword, from, &val); |
|
|
|
floatformat_to_doublest (&floatformat_ieee_double_littlebyte_bigword, |
|
|
|
from, &val); |
|
|
|
store_typed_floating (to, type, val); |
|
|
|
} |
|
|
|
else |
|
|
|
error ("sh_register_convert_to_virtual called with non DR register number"); |
|
|
|
error |
|
|
|
("sh_register_convert_to_virtual called with non DR register number"); |
|
|
|
} |
|
|
|
|
|
|
|
static void |
|
|
|
sh_sh4_register_convert_to_raw (struct type *type, int regnum, |
|
|
|
const void *from, void *to) |
|
|
|
{ |
|
|
|
if (regnum >= DR0_REGNUM |
|
|
|
&& regnum <= DR_LAST_REGNUM) |
|
|
|
if (regnum >= DR0_REGNUM && regnum <= DR_LAST_REGNUM) |
|
|
|
{ |
|
|
|
DOUBLEST val = extract_typed_floating (from, type); |
|
|
|
floatformat_from_doublest (&floatformat_ieee_double_littlebyte_bigword, &val, to); |
|
|
|
floatformat_from_doublest (&floatformat_ieee_double_littlebyte_bigword, |
|
|
|
&val, to); |
|
|
|
} |
|
|
|
else |
|
|
|
error ("sh_register_convert_to_raw called with non DR register number"); |
|
|
|
@ -1468,8 +1369,7 @@ fv_reg_base_num (int fv_regnum) |
|
|
|
{ |
|
|
|
int fp_regnum; |
|
|
|
|
|
|
|
fp_regnum = FP0_REGNUM + |
|
|
|
(fv_regnum - FV0_REGNUM) * 4; |
|
|
|
fp_regnum = FP0_REGNUM + (fv_regnum - FV0_REGNUM) * 4; |
|
|
|
return fp_regnum; |
|
|
|
} |
|
|
|
|
|
|
|
@ -1479,8 +1379,7 @@ dr_reg_base_num (int dr_regnum) |
|
|
|
{ |
|
|
|
int fp_regnum; |
|
|
|
|
|
|
|
fp_regnum = FP0_REGNUM + |
|
|
|
(dr_regnum - DR0_REGNUM) * 2; |
|
|
|
fp_regnum = FP0_REGNUM + (dr_regnum - DR0_REGNUM) * 2; |
|
|
|
return fp_regnum; |
|
|
|
} |
|
|
|
|
|
|
|
@ -1491,8 +1390,7 @@ sh_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, |
|
|
|
int base_regnum, portion; |
|
|
|
char temp_buffer[MAX_REGISTER_SIZE]; |
|
|
|
|
|
|
|
if (reg_nr >= DR0_REGNUM |
|
|
|
&& reg_nr <= DR_LAST_REGNUM) |
|
|
|
if (reg_nr >= DR0_REGNUM && reg_nr <= DR_LAST_REGNUM) |
|
|
|
{ |
|
|
|
base_regnum = dr_reg_base_num (reg_nr); |
|
|
|
|
|
|
|
@ -1501,14 +1399,15 @@ sh_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, |
|
|
|
for (portion = 0; portion < 2; portion++) |
|
|
|
regcache_raw_read (regcache, base_regnum + portion, |
|
|
|
(temp_buffer |
|
|
|
+ register_size (gdbarch, base_regnum) * portion)); |
|
|
|
+ register_size (gdbarch, |
|
|
|
base_regnum) * portion)); |
|
|
|
/* We must pay attention to the endiannes. */ |
|
|
|
sh_sh4_register_convert_to_virtual (reg_nr, |
|
|
|
gdbarch_register_type (gdbarch, reg_nr), |
|
|
|
gdbarch_register_type (gdbarch, |
|
|
|
reg_nr), |
|
|
|
temp_buffer, buffer); |
|
|
|
} |
|
|
|
else if (reg_nr >= FV0_REGNUM |
|
|
|
&& reg_nr <= FV_LAST_REGNUM) |
|
|
|
else if (reg_nr >= FV0_REGNUM && reg_nr <= FV_LAST_REGNUM) |
|
|
|
{ |
|
|
|
base_regnum = fv_reg_base_num (reg_nr); |
|
|
|
|
|
|
|
@ -1516,7 +1415,8 @@ sh_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, |
|
|
|
for (portion = 0; portion < 4; portion++) |
|
|
|
regcache_raw_read (regcache, base_regnum + portion, |
|
|
|
((char *) buffer |
|
|
|
+ register_size (gdbarch, base_regnum) * portion)); |
|
|
|
+ register_size (gdbarch, |
|
|
|
base_regnum) * portion)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -1527,23 +1427,22 @@ sh_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, |
|
|
|
int base_regnum, portion; |
|
|
|
char temp_buffer[MAX_REGISTER_SIZE]; |
|
|
|
|
|
|
|
if (reg_nr >= DR0_REGNUM |
|
|
|
&& reg_nr <= DR_LAST_REGNUM) |
|
|
|
if (reg_nr >= DR0_REGNUM && reg_nr <= DR_LAST_REGNUM) |
|
|
|
{ |
|
|
|
base_regnum = dr_reg_base_num (reg_nr); |
|
|
|
|
|
|
|
/* We must pay attention to the endiannes. */ |
|
|
|
sh_sh4_register_convert_to_raw (gdbarch_register_type (gdbarch, reg_nr), reg_nr, |
|
|
|
buffer, temp_buffer); |
|
|
|
sh_sh4_register_convert_to_raw (gdbarch_register_type (gdbarch, reg_nr), |
|
|
|
reg_nr, buffer, temp_buffer); |
|
|
|
|
|
|
|
/* Write the real regs for which this one is an alias. */ |
|
|
|
for (portion = 0; portion < 2; portion++) |
|
|
|
regcache_raw_write (regcache, base_regnum + portion, |
|
|
|
(temp_buffer |
|
|
|
+ register_size (gdbarch, base_regnum) * portion)); |
|
|
|
+ register_size (gdbarch, |
|
|
|
base_regnum) * portion)); |
|
|
|
} |
|
|
|
else if (reg_nr >= FV0_REGNUM |
|
|
|
&& reg_nr <= FV_LAST_REGNUM) |
|
|
|
else if (reg_nr >= FV0_REGNUM && reg_nr <= FV_LAST_REGNUM) |
|
|
|
{ |
|
|
|
base_regnum = fv_reg_base_num (reg_nr); |
|
|
|
|
|
|
|
@ -1551,7 +1450,8 @@ sh_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, |
|
|
|
for (portion = 0; portion < 4; portion++) |
|
|
|
regcache_raw_write (regcache, base_regnum + portion, |
|
|
|
((char *) buffer |
|
|
|
+ register_size (gdbarch, base_regnum) * portion)); |
|
|
|
+ register_size (gdbarch, |
|
|
|
base_regnum) * portion)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -1589,11 +1489,9 @@ sh_print_pseudo_register (struct gdbarch *gdbarch, struct ui_file *file, |
|
|
|
if (regnum < NUM_REGS || regnum >= NUM_REGS + NUM_PSEUDO_REGS) |
|
|
|
internal_error (__FILE__, __LINE__, |
|
|
|
"Invalid pseudo register number %d\n", regnum); |
|
|
|
else if (regnum >= DR0_REGNUM |
|
|
|
&& regnum <= DR_LAST_REGNUM) |
|
|
|
else if (regnum >= DR0_REGNUM && regnum <= DR_LAST_REGNUM) |
|
|
|
do_dr_register_info (gdbarch, file, regnum); |
|
|
|
else if (regnum >= FV0_REGNUM |
|
|
|
&& regnum <= FV_LAST_REGNUM) |
|
|
|
else if (regnum >= FV0_REGNUM && regnum <= FV_LAST_REGNUM) |
|
|
|
do_fv_register_info (gdbarch, file, regnum); |
|
|
|
} |
|
|
|
|
|
|
|
@ -1666,7 +1564,8 @@ sh_print_register (struct gdbarch *gdbarch, struct ui_file *file, int regnum) |
|
|
|
|
|
|
|
else if (regnum >= 0 && regnum < NUM_REGS) |
|
|
|
{ |
|
|
|
if (TYPE_CODE (gdbarch_register_type (gdbarch, regnum)) == TYPE_CODE_FLT) |
|
|
|
if (TYPE_CODE (gdbarch_register_type (gdbarch, regnum)) == |
|
|
|
TYPE_CODE_FLT) |
|
|
|
sh_do_fp_register (gdbarch, file, regnum); /* FP regs */ |
|
|
|
else |
|
|
|
sh_do_register (gdbarch, file, regnum); /* All other regs */ |
|
|
|
@ -1704,7 +1603,8 @@ sh_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
if (TYPE_CODE (gdbarch_register_type (gdbarch, regnum)) == TYPE_CODE_FLT) |
|
|
|
if (TYPE_CODE (gdbarch_register_type (gdbarch, regnum)) == |
|
|
|
TYPE_CODE_FLT) |
|
|
|
{ |
|
|
|
if (fpregs) |
|
|
|
{ |
|
|
|
@ -1934,8 +1834,7 @@ sh_frame_this_id (struct frame_info *next_frame, void **this_cache, |
|
|
|
*this_id = frame_id_build (cache->saved_sp, cache->pc); |
|
|
|
} |
|
|
|
|
|
|
|
static const struct frame_unwind sh_frame_unwind = |
|
|
|
{ |
|
|
|
static const struct frame_unwind sh_frame_unwind = { |
|
|
|
NORMAL_FRAME, |
|
|
|
sh_frame_this_id, |
|
|
|
sh_frame_prev_register |
|
|
|
@ -1974,8 +1873,7 @@ sh_frame_base_address (struct frame_info *next_frame, void **this_cache) |
|
|
|
return cache->base; |
|
|
|
} |
|
|
|
|
|
|
|
static const struct frame_base sh_frame_base = |
|
|
|
{ |
|
|
|
static const struct frame_base sh_frame_base = { |
|
|
|
&sh_frame_unwind, |
|
|
|
sh_frame_base_address, |
|
|
|
sh_frame_base_address, |
|
|
|
@ -2148,8 +2046,7 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
|
|
|
set_gdbarch_unwind_dummy_id (gdbarch, sh_unwind_dummy_id); |
|
|
|
frame_base_set_default (gdbarch, &sh_frame_base); |
|
|
|
|
|
|
|
set_gdbarch_in_function_epilogue_p (gdbarch, |
|
|
|
sh_in_function_epilogue_p); |
|
|
|
set_gdbarch_in_function_epilogue_p (gdbarch, sh_in_function_epilogue_p); |
|
|
|
|
|
|
|
switch (info.bfd_arch_info->mach) |
|
|
|
{ |
|
|
|
@ -2169,7 +2066,8 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
|
|
|
set_gdbarch_register_type (gdbarch, sh_sh3e_register_type); |
|
|
|
set_gdbarch_fp0_regnum (gdbarch, 25); |
|
|
|
set_gdbarch_store_return_value (gdbarch, sh3e_sh4_store_return_value); |
|
|
|
set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value); |
|
|
|
set_gdbarch_extract_return_value (gdbarch, |
|
|
|
sh3e_sh4_extract_return_value); |
|
|
|
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu); |
|
|
|
break; |
|
|
|
|
|
|
|
@ -2190,7 +2088,8 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
|
|
|
set_gdbarch_register_type (gdbarch, sh_sh3e_register_type); |
|
|
|
set_gdbarch_fp0_regnum (gdbarch, 25); |
|
|
|
set_gdbarch_store_return_value (gdbarch, sh3e_sh4_store_return_value); |
|
|
|
set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value); |
|
|
|
set_gdbarch_extract_return_value (gdbarch, |
|
|
|
sh3e_sh4_extract_return_value); |
|
|
|
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu); |
|
|
|
break; |
|
|
|
|
|
|
|
@ -2207,7 +2106,8 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
|
|
|
set_gdbarch_pseudo_register_read (gdbarch, sh_pseudo_register_read); |
|
|
|
set_gdbarch_pseudo_register_write (gdbarch, sh_pseudo_register_write); |
|
|
|
set_gdbarch_store_return_value (gdbarch, sh3e_sh4_store_return_value); |
|
|
|
set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value); |
|
|
|
set_gdbarch_extract_return_value (gdbarch, |
|
|
|
sh3e_sh4_extract_return_value); |
|
|
|
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu); |
|
|
|
break; |
|
|
|
|
|
|
|
|