/* Target machine description for SGI Iris under Irix 6.x, for GDB.
- Copyright 2001
- Free Software Foundation, Inc.
+
+ Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GDB.
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-#include "mips/tm-bigmips.h"
-
-/* SGI's assembler doesn't grok dollar signs in identifiers.
- So we use dots instead. This item must be coordinated with G++. */
-#undef CPLUS_MARKER
-#define CPLUS_MARKER '.'
+#include "mips/tm-mips.h"
+#include "solib.h"
/* Redefine register numbers for SGI. */
-#undef NUM_REGS
#undef MIPS_REGISTER_NAMES
#undef FP0_REGNUM
#undef PC_REGNUM
#undef BADVADDR_REGNUM
#undef FCRCS_REGNUM
#undef FCRIR_REGNUM
-#undef FP_REGNUM
-
-/* Number of machine registers */
-#define NUM_REGS 71
-
-/* Initializer for an array of names of registers.
- There should be NUM_REGS strings in this initializer. */
+/* Initializer for an array of names for registers 32 and above.
+ There should be NUM_REGS-32 strings in this initializer. */
#define MIPS_REGISTER_NAMES \
- { "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", \
- "a4", "a5", "a6", "a7", "t0", "t1", "t2", "t3", \
- "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", \
- "t8", "t9", "k0", "k1", "gp", "sp", "s8", "ra", \
- "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
+ { "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",\
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",\
#define LO_REGNUM 68 /* ... */
#define FCRCS_REGNUM 69 /* FP control/status */
#define FCRIR_REGNUM 70 /* FP implementation/revision */
-#define FP_REGNUM 30 /* S8 register is the Frame Pointer */
-
-#undef REGISTER_BYTES
-#define REGISTER_BYTES (MIPS_NUMREGS * 8 + (NUM_REGS - MIPS_NUMREGS) * MIPS_REGSIZE)
-#undef REGISTER_BYTE
-#define REGISTER_BYTE(N) \
- (((N) < FP0_REGNUM) ? (N) * MIPS_REGSIZE : \
+#undef MIPS_REGISTER_BYTE
+#define MIPS_REGISTER_BYTE(N) \
+ (((N) < FP0_REGNUM) ? (N) * mips_regsize (current_gdbarch) : \
((N) < FP0_REGNUM + 32) ? \
- FP0_REGNUM * MIPS_REGSIZE + \
+ FP0_REGNUM * mips_regsize (current_gdbarch) + \
((N) - FP0_REGNUM) * sizeof(double) : \
- 32 * sizeof(double) + ((N) - 32) * MIPS_REGSIZE)
-
-#undef REGISTER_VIRTUAL_TYPE
-#define REGISTER_VIRTUAL_TYPE(N) \
- (((N) >= FP0_REGNUM && (N) < FP0_REGNUM+32) ? builtin_type_double \
- : ((N) == 32 /*SR*/) ? builtin_type_uint32 \
- : ((N) >= 70 && (N) <= 89) ? builtin_type_uint32 \
- : builtin_type_int)
-
-#undef MIPS_LAST_ARG_REGNUM
-#define MIPS_LAST_ARG_REGNUM 11 /* N32 uses R4 through R11 for args */
-
-/* MIPS_STACK_ARGSIZE -- how many bytes does a pushed function arg take
- up on the stack? For the n32 ABI, eight bytes are reserved for each
- register. Like MIPS_SAVED_REGSIZE but different. */
-#define MIPS_DEFAULT_STACK_ARGSIZE 8
-
-/* N32 does not reserve home space for registers used to carry
- parameters. */
-#define MIPS_REGS_HAVE_HOME_P 0
-
-/* Force N32 ABI as the default. */
-#define MIPS_DEFAULT_ABI MIPS_ABI_N32
-
+ 32 * sizeof(double) + ((N) - 32) * mips_regsize (current_gdbarch))
/* The signal handler trampoline is called _sigtramp. */
#undef IN_SIGTRAMP
#undef SIGFRAME_FPREGSAVE_OFF
#define SIGFRAME_FPREGSAVE_OFF (SIGFRAME_BASE + 2 * 4 + 8 + 32 * 8 + 4)
#define SIGFRAME_REG_SIZE 8
-
-/* Select the disassembler */
-#undef TM_PRINT_INSN_MACH
-#define TM_PRINT_INSN_MACH bfd_mach_mips8000