1 /* Target machine description for SGI Iris under Irix, for GDB.
2 Copyright 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
4 This file is part of GDB.
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
20 #include "mips/tm-bigmips.h"
22 /* SGI's assembler doesn't grok dollar signs in identifiers.
23 So we use dots instead. This item must be coordinated with G++. */
25 #define CPLUS_MARKER '.'
27 /* Redefine register numbers for SGI. */
39 /* Number of machine registers */
43 /* Initializer for an array of names of registers.
44 There should be NUM_REGS strings in this initializer. */
46 #define REGISTER_NAMES \
47 { "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", \
48 "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", \
49 "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", \
50 "t8", "t9", "k0", "k1", "gp", "sp", "fp", "ra", \
51 "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
52 "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
53 "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",\
54 "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",\
55 "pc", "cause", "bad", "hi", "lo", "fsr", "fir" \
58 /* Register numbers of various important registers.
59 Note that some of these values are "real" register numbers,
60 and correspond to the general registers of the machine,
61 and some are "phony" register numbers which are too large
62 to be actual register numbers as far as the user is concerned
63 but do serve to get the desired values when passed to read_register. */
65 #define FP0_REGNUM 32 /* Floating point register 0 (single float) */
66 #define PC_REGNUM 64 /* Contains program counter */
67 #define PS_REGNUM 65 /* Contains processor status */
68 #define HI_REGNUM 67 /* Multiple/divide temp */
69 #define LO_REGNUM 68 /* ... */
70 #define FCRCS_REGNUM 69 /* FP control/status */
71 #define FCRIR_REGNUM 70 /* FP implementation/revision */
73 /* Offsets for register values in _sigtramp frame.
74 sigcontext is immediately above the _sigtramp frame on Irix. */
75 #define SIGFRAME_BASE 0x0
76 #define SIGFRAME_PC_OFF (SIGFRAME_BASE + 2 * 4)
77 #define SIGFRAME_REGSAVE_OFF (SIGFRAME_BASE + 3 * 4)