along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+#include "coff/sym.h" /* Needed for PDR below. */
+#include "coff/symconst.h"
+
#if !defined (TARGET_BYTE_ORDER)
#define TARGET_BYTE_ORDER LITTLE_ENDIAN
#endif
+/* FIXME, this triggers host-and-target (``native'') dependent code
+ which currently sits in mips-xdep.c. Needs to be moved out to
+ mips-nat.c or some such. */
+#define GDB_TARGET_IS_MIPS
+
/* Floating point is IEEE compliant */
#define IEEE_FLOAT
/*#define NAMES_HAVE_UNDERSCORE*/
-/* Debugger information will be in mips' format */
-
-#define READ_MIPS_FORMAT
-
-/* File format is coff, but with additions */
-
-#define COFF_FORMAT
-
/* Offset from address of function to start of its code.
Zero on most machines. */
/* Return the GDB type object for the "standard" data type
of data in register N. */
-#define REGISTER_VIRTUAL_TYPE(N) builtin_type_int
+#define REGISTER_VIRTUAL_TYPE(N) \
+ (((N) >= FP0_REGNUM && (N) < FP0_REGNUM+32) \
+ ? builtin_type_float : builtin_type_int) \
+
/* Store the address of the place in which to copy the structure the
subroutine will return. This is called from call_function. */
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 \
- char *proc_desc; /* actually, a mips_extra_func_info_t */\
+ mips_extra_func_info_t proc_desc; \
int num_args;\
struct frame_saved_regs *saved_regs;