From: Kevin Buettner Date: Sat, 13 Mar 2004 01:24:20 +0000 (+0000) Subject: Add FR450 support. X-Git-Tag: gprof-pre-ansify-2004-05-26~880 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b2d6d697ea2d4406beb407ee26ac116a1ab25f41;p=external%2Fbinutils.git Add FR450 support. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8627e40..22d2d9c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2004-03-12 Kevin Buettner + * frv-tdep.c (set_variant_scratch_registers): New function. + (frv_gdbarch_init): Add FR450 support. + * frv-tdep.h (scr0_regnum, scr1_regnum, scr2_regnum, scr3_regnum): + New constants. + +2004-03-12 Kevin Buettner + * frv-tdep.c, frv-tdep.h (first_gpr_regnum, sp_regnum, fp_regnum) (struct_return_regnum, last_gpr_regnum, first_fpr_regnum) (last_fpr_regnum, pc_regnum, first_spr_regnum, psr_regnum, ccr_regnum) diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c index 6fd82f9..3b0fc1a 100644 --- a/gdb/frv-tdep.c +++ b/gdb/frv-tdep.c @@ -239,6 +239,15 @@ set_variant_abi_fdpic (struct gdbarch_tdep *var) var->register_names[fdpic_loadmap_interp_regnum] = xstrdup ("loadmap_interp"); } +static void +set_variant_scratch_registers (struct gdbarch_tdep *var) +{ + var->register_names[scr0_regnum] = xstrdup ("scr0"); + var->register_names[scr1_regnum] = xstrdup ("scr1"); + var->register_names[scr2_regnum] = xstrdup ("scr2"); + var->register_names[scr3_regnum] = xstrdup ("scr3"); +} + static const char * frv_register_name (int reg) { @@ -1362,6 +1371,7 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) break; case bfd_mach_fr400: + case bfd_mach_fr450: set_variant_num_gprs (var, 32); set_variant_num_fprs (var, 32); break; @@ -1378,6 +1388,9 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) if (elf_flags & EF_FRV_FDPIC) set_variant_abi_fdpic (var); + if (elf_flags & EF_FRV_CPU_FR450) + set_variant_scratch_registers (var); + gdbarch = gdbarch_alloc (&info, var); set_gdbarch_short_bit (gdbarch, 16); @@ -1448,6 +1461,7 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) break; case bfd_mach_fr400: + case bfd_mach_fr450: /* fr400-style hardware debugging support. */ var->num_hw_watchpoints = 2; var->num_hw_breakpoints = 4; diff --git a/gdb/frv-tdep.h b/gdb/frv-tdep.h index 691d7a5..e33fb11 100644 --- a/gdb/frv-tdep.h +++ b/gdb/frv-tdep.h @@ -58,6 +58,10 @@ enum { dbar1_regnum = 138, dbar2_regnum = 139, dbar3_regnum = 140, + scr0_regnum = 141, + scr1_regnum = 142, + scr2_regnum = 143, + scr3_regnum = 144, lr_regnum = 145, lcr_regnum = 146, iacc0h_regnum = 147,