* mips-tdep.c (mips_ecoff_reg_to_regnum): Rename to
mips_dwarf_dwarf2_ecoff_reg_to_regnum(). (mips_dwarf_dwarf2_ecoff_reg_to_regnum, mips_stab_reg_to_regnum): Do range checks on register number obtained from debugging info. (mips_gdbarch_init): Call set_gdbarch_dwarf_reg_to_regnum() and set_gdbarch_dwarf2_reg_to_regnum(). Adjust call of set_gdbarch_ecoff_reg_to_regnum() to account for new name of mapping function. (do_fp_register_row): Fix typo which caused double type to be used when attempting to unpack a float.
This commit is contained in:
parent
5acd598562
commit
2f38ef8908
2 changed files with 37 additions and 8 deletions
|
@ -1,3 +1,16 @@
|
|||
2003-03-11 Kevin Buettner <kevinb@redhat.com>
|
||||
|
||||
* mips-tdep.c (mips_ecoff_reg_to_regnum): Rename to
|
||||
mips_dwarf_dwarf2_ecoff_reg_to_regnum().
|
||||
(mips_dwarf_dwarf2_ecoff_reg_to_regnum, mips_stab_reg_to_regnum):
|
||||
Do range checks on register number obtained from debugging info.
|
||||
(mips_gdbarch_init): Call set_gdbarch_dwarf_reg_to_regnum() and
|
||||
set_gdbarch_dwarf2_reg_to_regnum(). Adjust call of
|
||||
set_gdbarch_ecoff_reg_to_regnum() to account for new name of
|
||||
mapping function.
|
||||
(do_fp_register_row): Fix typo which caused double type to be
|
||||
used when attempting to unpack a float.
|
||||
|
||||
2003-03-11 J. Brobecker <brobecker@gnat.com>
|
||||
|
||||
* breakpoint.c (bpstat_stop_status): Fix a small memory leak.
|
||||
|
|
|
@ -4150,7 +4150,7 @@ do_fp_register_row (int regnum)
|
|||
{
|
||||
/* Eight byte registers: print each one as float AND as double. */
|
||||
mips_read_fp_register_single (regnum, raw_buffer);
|
||||
flt1 = unpack_double (mips_double_register_type (), raw_buffer, &inv1);
|
||||
flt1 = unpack_double (mips_float_register_type (), raw_buffer, &inv1);
|
||||
|
||||
mips_read_fp_register_double (regnum, raw_buffer);
|
||||
doub = unpack_double (mips_double_register_type (), raw_buffer, &inv3);
|
||||
|
@ -5546,23 +5546,37 @@ mips_saved_pc_after_call (struct frame_info *frame)
|
|||
static int
|
||||
mips_stab_reg_to_regnum (int num)
|
||||
{
|
||||
if (num < 32)
|
||||
if (num >= 0 && num < 32)
|
||||
return num;
|
||||
else
|
||||
else if (num >= 38 && num < 70)
|
||||
return num + FP0_REGNUM - 38;
|
||||
else
|
||||
{
|
||||
/* This will hopefully (eventually) provoke a warning. Should
|
||||
we be calling complaint() here? */
|
||||
return NUM_REGS + NUM_PSEUDO_REGS;
|
||||
}
|
||||
}
|
||||
|
||||
/* Convert a ecoff register number to a gdb REGNUM */
|
||||
|
||||
/* Convert a dwarf, dwarf2, or ecoff register number to a gdb REGNUM */
|
||||
|
||||
static int
|
||||
mips_ecoff_reg_to_regnum (int num)
|
||||
mips_dwarf_dwarf2_ecoff_reg_to_regnum (int num)
|
||||
{
|
||||
if (num < 32)
|
||||
if (num >= 0 && num < 32)
|
||||
return num;
|
||||
else
|
||||
else if (num >= 32 && num < 64)
|
||||
return num + FP0_REGNUM - 32;
|
||||
else
|
||||
{
|
||||
/* This will hopefully (eventually) provoke a warning. Should
|
||||
we be calling complaint() here? */
|
||||
return NUM_REGS + NUM_PSEUDO_REGS;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Convert an integer into an address. By first converting the value
|
||||
into a pointer and then extracting it signed, the address is
|
||||
guarenteed to be correctly sign extended. */
|
||||
|
@ -5979,7 +5993,9 @@ mips_gdbarch_init (struct gdbarch_info info,
|
|||
|
||||
/* Map debug register numbers onto internal register numbers. */
|
||||
set_gdbarch_stab_reg_to_regnum (gdbarch, mips_stab_reg_to_regnum);
|
||||
set_gdbarch_ecoff_reg_to_regnum (gdbarch, mips_ecoff_reg_to_regnum);
|
||||
set_gdbarch_ecoff_reg_to_regnum (gdbarch, mips_dwarf_dwarf2_ecoff_reg_to_regnum);
|
||||
set_gdbarch_dwarf_reg_to_regnum (gdbarch, mips_dwarf_dwarf2_ecoff_reg_to_regnum);
|
||||
set_gdbarch_dwarf2_reg_to_regnum (gdbarch, mips_dwarf_dwarf2_ecoff_reg_to_regnum);
|
||||
|
||||
/* Initialize a frame */
|
||||
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, mips_frame_init_saved_regs);
|
||||
|
|
Loading…
Add table
Reference in a new issue