2004-10-30 Andrew Cagney <cagney@gnu.org>
[deliverable/binutils-gdb.git] / gdb / config / mips / tm-mips.h
1 /* Definitions to make GDB run on a mips box under 4.3bsd.
2
3 Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,
4 1997, 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
5
6 Contributed by Per Bothner (bothner@cs.wisc.edu) at U.Wisconsin
7 and by Alessandro Forin (af@cs.cmu.edu) at CMU..
8
9 This file is part of GDB.
10
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.
15
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.
20
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. */
25
26 #ifndef TM_MIPS_H
27 #define TM_MIPS_H 1
28
29 #include "regcache.h"
30
31 struct frame_info;
32 struct symbol;
33 struct type;
34 struct value;
35
36 #include <bfd.h>
37 #include "coff/sym.h" /* Needed for PDR below. */
38 #include "coff/symconst.h"
39
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. */
42 extern int mips_step_skips_delay (CORE_ADDR);
43 #define STEP_SKIPS_DELAY_P (1)
44 #define STEP_SKIPS_DELAY(pc) (mips_step_skips_delay (pc))
45
46 #define RA_REGNUM 31 /* Contains return address value */
47 #define FIRST_EMBED_REGNUM 74 /* First CP0 register for embedded use */
48 #define PRID_REGNUM 89 /* Processor ID */
49 #define LAST_EMBED_REGNUM 89 /* Last one */
50
51 /* Special symbol found in blocks associated with routines. We can hang
52 mips_extra_func_info_t's off of this. */
53
54 #define MIPS_EFI_SYMBOL_NAME "__GDB_EFI_INFO__"
55 extern void ecoff_relocate_efi (struct symbol *, CORE_ADDR);
56
57 /* Specific information about a procedure.
58 This overlays the MIPS's PDR records,
59 mipsread.c (ab)uses this to save memory */
60
61 typedef struct mips_extra_func_info
62 {
63 long numargs; /* number of args to procedure (was iopt) */
64 bfd_vma high_addr; /* upper address bound */
65 long frame_adjust; /* offset of FP from SP (used on MIPS16) */
66 PDR pdr; /* Procedure descriptor record */
67 }
68 *mips_extra_func_info_t;
69
70 /* Functions for dealing with MIPS16 call and return stubs. */
71 #define DEPRECATED_IGNORE_HELPER_CALL(pc) mips_ignore_helper (pc)
72 extern int mips_ignore_helper (CORE_ADDR pc);
73
74 #endif /* TM_MIPS_H */
This page took 0.055437 seconds and 4 git commands to generate.