* mipsread.c (parse_symbol, parse_procedure): Re-do the way that

.gdbinfo. symbols are created.  Move creation from parse_procedure
to parse_symbol, where it is fairly easy to grow the symtab.  This
also fixes a symtab trashing bug on all mips-based systems.
* (got_numargs, lookup_numargs, free_numargs):  Delete.  Not
needed anymore.
* tm-mips.h, tm-iris3.h, mips-tdep.c, mipsread.c:  Re-do struct
mips_extra_func_info, and all the PROC_xxx macros that look at it.
This commit is contained in:
Stu Grossman
1992-03-31 01:21:01 +00:00
parent d26b50b794
commit d1bb1d4170
4 changed files with 65 additions and 110 deletions

View File

@@ -19,6 +19,12 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef LANGUAGE_C
#define LANGUAGE_C
#endif
#include <sym.h>
#include <symconst.h>
#if !defined (TARGET_BYTE_ORDER)
#define TARGET_BYTE_ORDER LITTLE_ENDIAN
#endif
@@ -320,20 +326,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
mipsread.c (ab)uses this to save memory */
typedef struct mips_extra_func_info {
unsigned long adr; /* memory address of start of procedure */
long isym; /* pointer to procedure symbol */
long pad2; /* iline: start of line number entries*/
long regmask; /* save register mask */
long regoffset; /* save register offset */
long numargs; /* number of args to procedure (was iopt) */
long fregmask; /* save floating point register mask */
long fregoffset; /* save floating point register offset */
long framesize; /* frameoffset: frame size */
short framereg; /* frame pointer register */
short pcreg; /* offset or reg of return pc */
long lnLow; /* lowest line in the procedure */
long lnHigh; /* highest line in the procedure */
long pad3; /* cbLineOffset: byte offset for this procedure from the fd base */
PDR pdr; /* Procedure descriptor record */
} *mips_extra_func_info_t;
#define EXTRA_FRAME_INFO \