]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/config/mips/tm-mips.h
2004-10-30 Andrew Cagney <cagney@gnu.org>
[thirdparty/binutils-gdb.git] / gdb / config / mips / tm-mips.h
CommitLineData
c906108c 1/* Definitions to make GDB run on a mips box under 4.3bsd.
a094c6fb
AC
2
3 Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,
95404a3e 4 1997, 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
a094c6fb 5
c906108c
SS
6 Contributed by Per Bothner (bothner@cs.wisc.edu) at U.Wisconsin
7 and by Alessandro Forin (af@cs.cmu.edu) at CMU..
8
c5aa993b 9 This file is part of GDB.
c906108c 10
c5aa993b
JM
11 This program is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
14 (at your option) any later version.
c906108c 15
c5aa993b
JM
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License for more details.
c906108c 20
c5aa993b
JM
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 59 Temple Place - Suite 330,
24 Boston, MA 02111-1307, USA. */
c906108c
SS
25
26#ifndef TM_MIPS_H
27#define TM_MIPS_H 1
28
f88e2c52
AC
29#include "regcache.h"
30
c906108c
SS
31struct frame_info;
32struct symbol;
33struct type;
34struct value;
c906108c
SS
35
36#include <bfd.h>
37#include "coff/sym.h" /* Needed for PDR below. */
38#include "coff/symconst.h"
39
c906108c
SS
40/* Return non-zero if PC points to an instruction which will cause a step
41 to execute both the instruction at PC and an instruction at PC+4. */
a14ed312 42extern int mips_step_skips_delay (CORE_ADDR);
c906108c
SS
43#define STEP_SKIPS_DELAY_P (1)
44#define STEP_SKIPS_DELAY(pc) (mips_step_skips_delay (pc))
45
c906108c
SS
46#define RA_REGNUM 31 /* Contains return address value */
47#define PS_REGNUM 32 /* Contains processor status */
c906108c
SS
48#define FIRST_EMBED_REGNUM 74 /* First CP0 register for embedded use */
49#define PRID_REGNUM 89 /* Processor ID */
50#define LAST_EMBED_REGNUM 89 /* Last one */
51
c906108c
SS
52/* Special symbol found in blocks associated with routines. We can hang
53 mips_extra_func_info_t's off of this. */
54
55#define MIPS_EFI_SYMBOL_NAME "__GDB_EFI_INFO__"
a14ed312 56extern void ecoff_relocate_efi (struct symbol *, CORE_ADDR);
c906108c
SS
57
58/* Specific information about a procedure.
59 This overlays the MIPS's PDR records,
60 mipsread.c (ab)uses this to save memory */
61
c5aa993b
JM
62typedef struct mips_extra_func_info
63 {
64 long numargs; /* number of args to procedure (was iopt) */
65 bfd_vma high_addr; /* upper address bound */
66 long frame_adjust; /* offset of FP from SP (used on MIPS16) */
67 PDR pdr; /* Procedure descriptor record */
68 }
69 *mips_extra_func_info_t;
c906108c 70
c906108c 71/* Functions for dealing with MIPS16 call and return stubs. */
a53c66de 72#define DEPRECATED_IGNORE_HELPER_CALL(pc) mips_ignore_helper (pc)
a14ed312 73extern int mips_ignore_helper (CORE_ADDR pc);
c906108c 74
c5aa993b 75#endif /* TM_MIPS_H */