Multiarch NUM_REGS for MIPS.
This commit is contained in:
parent
93ce5efb0a
commit
fe29b929e2
5 changed files with 24 additions and 17 deletions
|
@ -1,3 +1,13 @@
|
||||||
|
2002-12-13 Kevin Buettner <kevinb@redhat.com>
|
||||||
|
|
||||||
|
* config/mips/tm-mips.h, config/mips/tm-irix3.h,
|
||||||
|
config/mips/tm-irix6.h (NUM_REGS): Delete.
|
||||||
|
* mips-tdep.c (mips_gdbarch_init): Call set_gdbarch_num_regs().
|
||||||
|
(temp_saved_regs): Declare as a pointer rather than an array.
|
||||||
|
(mips32_heuristic_proc_desc, heuristic_proc_desc): Make sure
|
||||||
|
that ``temp_saved_regs'' has storage allocated to it and that
|
||||||
|
it's the correct size.
|
||||||
|
|
||||||
2002-12-13 Jeff Johnston <jjohnstn@redhat.com>
|
2002-12-13 Jeff Johnston <jjohnstn@redhat.com>
|
||||||
|
|
||||||
* defs.h (init_last_source_visited): New prototype.
|
* defs.h (init_last_source_visited): New prototype.
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
|
|
||||||
/* Redefine register numbers for SGI. */
|
/* Redefine register numbers for SGI. */
|
||||||
|
|
||||||
#undef NUM_REGS
|
|
||||||
#undef MIPS_REGISTER_NAMES
|
#undef MIPS_REGISTER_NAMES
|
||||||
#undef FP0_REGNUM
|
#undef FP0_REGNUM
|
||||||
#undef PC_REGNUM
|
#undef PC_REGNUM
|
||||||
|
@ -34,10 +33,6 @@
|
||||||
#undef FCRCS_REGNUM
|
#undef FCRCS_REGNUM
|
||||||
#undef FCRIR_REGNUM
|
#undef FCRIR_REGNUM
|
||||||
|
|
||||||
/* Number of machine registers */
|
|
||||||
|
|
||||||
#define NUM_REGS 71
|
|
||||||
|
|
||||||
/* Initializer for an array of names of registers.
|
/* Initializer for an array of names of registers.
|
||||||
There should be NUM_REGS strings in this initializer. */
|
There should be NUM_REGS strings in this initializer. */
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
|
|
||||||
/* Redefine register numbers for SGI. */
|
/* Redefine register numbers for SGI. */
|
||||||
|
|
||||||
#undef NUM_REGS
|
|
||||||
#undef MIPS_REGISTER_NAMES
|
#undef MIPS_REGISTER_NAMES
|
||||||
#undef FP0_REGNUM
|
#undef FP0_REGNUM
|
||||||
#undef PC_REGNUM
|
#undef PC_REGNUM
|
||||||
|
@ -35,10 +34,6 @@
|
||||||
#undef FCRCS_REGNUM
|
#undef FCRCS_REGNUM
|
||||||
#undef FCRIR_REGNUM
|
#undef FCRIR_REGNUM
|
||||||
|
|
||||||
/* Number of machine registers */
|
|
||||||
|
|
||||||
#define NUM_REGS 71
|
|
||||||
|
|
||||||
/* Initializer for an array of names of registers.
|
/* Initializer for an array of names of registers.
|
||||||
There should be NUM_REGS strings in this initializer. */
|
There should be NUM_REGS strings in this initializer. */
|
||||||
|
|
||||||
|
|
|
@ -59,12 +59,6 @@ extern int mips_step_skips_delay (CORE_ADDR);
|
||||||
#define MIPS_REGSIZE 4
|
#define MIPS_REGSIZE 4
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Number of machine registers */
|
|
||||||
|
|
||||||
#ifndef NUM_REGS
|
|
||||||
#define NUM_REGS 90
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Initializer for an array of names of registers.
|
/* Initializer for an array of names of registers.
|
||||||
There should be NUM_REGS strings in this initializer. */
|
There should be NUM_REGS strings in this initializer. */
|
||||||
|
|
||||||
|
|
|
@ -1714,7 +1714,13 @@ mips_frame_saved_pc (struct frame_info *frame)
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct mips_extra_func_info temp_proc_desc;
|
static struct mips_extra_func_info temp_proc_desc;
|
||||||
static CORE_ADDR temp_saved_regs[NUM_REGS];
|
|
||||||
|
/* This hack will go away once the get_prev_frame() code has been
|
||||||
|
modified to set the frame's type first. That is BEFORE init extra
|
||||||
|
frame info et.al. is called. This is because it will become
|
||||||
|
possible to skip the init extra info call for sigtramp and dummy
|
||||||
|
frames. */
|
||||||
|
static CORE_ADDR *temp_saved_regs;
|
||||||
|
|
||||||
/* Set a register's saved stack address in temp_saved_regs. If an address
|
/* Set a register's saved stack address in temp_saved_regs. If an address
|
||||||
has already been set for this register, do nothing; this way we will
|
has already been set for this register, do nothing; this way we will
|
||||||
|
@ -2026,6 +2032,7 @@ mips32_heuristic_proc_desc (CORE_ADDR start_pc, CORE_ADDR limit_pc,
|
||||||
CORE_ADDR cur_pc;
|
CORE_ADDR cur_pc;
|
||||||
CORE_ADDR frame_addr = 0; /* Value of $r30. Used by gcc for frame-pointer */
|
CORE_ADDR frame_addr = 0; /* Value of $r30. Used by gcc for frame-pointer */
|
||||||
restart:
|
restart:
|
||||||
|
temp_saved_regs = xrealloc (temp_saved_regs, SIZEOF_FRAME_SAVED_REGS);
|
||||||
memset (temp_saved_regs, '\0', SIZEOF_FRAME_SAVED_REGS);
|
memset (temp_saved_regs, '\0', SIZEOF_FRAME_SAVED_REGS);
|
||||||
PROC_FRAME_OFFSET (&temp_proc_desc) = 0;
|
PROC_FRAME_OFFSET (&temp_proc_desc) = 0;
|
||||||
PROC_FRAME_ADJUST (&temp_proc_desc) = 0; /* offset of FP from SP */
|
PROC_FRAME_ADJUST (&temp_proc_desc) = 0; /* offset of FP from SP */
|
||||||
|
@ -2134,6 +2141,7 @@ heuristic_proc_desc (CORE_ADDR start_pc, CORE_ADDR limit_pc,
|
||||||
if (start_pc == 0)
|
if (start_pc == 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
memset (&temp_proc_desc, '\0', sizeof (temp_proc_desc));
|
memset (&temp_proc_desc, '\0', sizeof (temp_proc_desc));
|
||||||
|
temp_saved_regs = xrealloc (temp_saved_regs, SIZEOF_FRAME_SAVED_REGS);
|
||||||
memset (&temp_saved_regs, '\0', SIZEOF_FRAME_SAVED_REGS);
|
memset (&temp_saved_regs, '\0', SIZEOF_FRAME_SAVED_REGS);
|
||||||
PROC_LOW_ADDR (&temp_proc_desc) = start_pc;
|
PROC_LOW_ADDR (&temp_proc_desc) = start_pc;
|
||||||
PROC_FRAME_REG (&temp_proc_desc) = SP_REGNUM;
|
PROC_FRAME_REG (&temp_proc_desc) = SP_REGNUM;
|
||||||
|
@ -5757,6 +5765,11 @@ mips_gdbarch_init (struct gdbarch_info info,
|
||||||
set_gdbarch_elf_make_msymbol_special (gdbarch,
|
set_gdbarch_elf_make_msymbol_special (gdbarch,
|
||||||
mips_elf_make_msymbol_special);
|
mips_elf_make_msymbol_special);
|
||||||
|
|
||||||
|
if (osabi == GDB_OSABI_IRIX)
|
||||||
|
set_gdbarch_num_regs (gdbarch, 71);
|
||||||
|
else
|
||||||
|
set_gdbarch_num_regs (gdbarch, 90);
|
||||||
|
|
||||||
switch (mips_abi)
|
switch (mips_abi)
|
||||||
{
|
{
|
||||||
case MIPS_ABI_O32:
|
case MIPS_ABI_O32:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue