OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [gdb/] [mips-tdep.h] - Blame information for rev 258

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 24 jeremybenn
/* Target-dependent header for the MIPS architecture, for GDB, the GNU Debugger.
2
 
3
   Copyright (C) 2002, 2003, 2007, 2008 Free Software Foundation, Inc.
4
 
5
   This file is part of GDB.
6
 
7
   This program is free software; you can redistribute it and/or modify
8
   it under the terms of the GNU General Public License as published by
9
   the Free Software Foundation; either version 3 of the License, or
10
   (at your option) any later version.
11
 
12
   This program is distributed in the hope that it will be useful,
13
   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
   GNU General Public License for more details.
16
 
17
   You should have received a copy of the GNU General Public License
18
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
 
20
#ifndef MIPS_TDEP_H
21
#define MIPS_TDEP_H
22
 
23
struct gdbarch;
24
 
25
/* All the possible MIPS ABIs. */
26
enum mips_abi
27
  {
28
    MIPS_ABI_UNKNOWN = 0,
29
    MIPS_ABI_N32,
30
    MIPS_ABI_O32,
31
    MIPS_ABI_N64,
32
    MIPS_ABI_O64,
33
    MIPS_ABI_EABI32,
34
    MIPS_ABI_EABI64,
35
    MIPS_ABI_LAST
36
  };
37
 
38
/* Return the MIPS ABI associated with GDBARCH.  */
39
enum mips_abi mips_abi (struct gdbarch *gdbarch);
40
 
41
/* Return the MIPS ISA's register size.  Just a short cut to the BFD
42
   architecture's word size.  */
43
extern int mips_isa_regsize (struct gdbarch *gdbarch);
44
 
45
/* Return the current index for various MIPS registers.  */
46
struct mips_regnum
47
{
48
  int pc;
49
  int fp0;
50
  int fp_implementation_revision;
51
  int fp_control_status;
52
  int badvaddr;         /* Bad vaddr for addressing exception.  */
53
  int cause;            /* Describes last exception.  */
54
  int hi;               /* Multiply/divide temp.  */
55
  int lo;               /* ...  */
56
};
57
extern const struct mips_regnum *mips_regnum (struct gdbarch *gdbarch);
58
 
59
/* Register numbers of various important registers.  */
60
 
61
enum
62
{
63
  MIPS_ZERO_REGNUM = 0,          /* Read-only register, always 0.  */
64
  MIPS_AT_REGNUM = 1,
65
  MIPS_V0_REGNUM = 2,           /* Function integer return value.  */
66
  MIPS_A0_REGNUM = 4,           /* Loc of first arg during a subr call */
67
  MIPS_T9_REGNUM = 25,          /* Contains address of callee in PIC.  */
68
  MIPS_SP_REGNUM = 29,
69
  MIPS_RA_REGNUM = 31,
70
  MIPS_PS_REGNUM = 32,          /* Contains processor status.  */
71
  MIPS_EMBED_LO_REGNUM = 33,
72
  MIPS_EMBED_HI_REGNUM = 34,
73
  MIPS_EMBED_BADVADDR_REGNUM = 35,
74
  MIPS_EMBED_CAUSE_REGNUM = 36,
75
  MIPS_EMBED_PC_REGNUM = 37,
76
  MIPS_EMBED_FP0_REGNUM = 38,
77
  MIPS_UNUSED_REGNUM = 73,      /* Never used, FIXME */
78
  MIPS_FIRST_EMBED_REGNUM = 74, /* First CP0 register for embedded use.  */
79
  MIPS_PRID_REGNUM = 89,        /* Processor ID.  */
80
  MIPS_LAST_EMBED_REGNUM = 89   /* Last one.  */
81
};
82
 
83
/* Defined in mips-tdep.c and used in remote-mips.c */
84
extern void deprecated_mips_set_processor_regs_hack (void);
85
 
86
/* Instruction sizes and other useful constants.  */
87
enum
88
{
89
  MIPS_INSN16_SIZE = 2,
90
  MIPS_INSN32_SIZE = 4,
91
  /* The number of floating-point or integer registers.  */
92
  MIPS_NUMREGS = 32
93
};
94
 
95
/* Single step based on where the current instruction will take us.  */
96
extern int mips_software_single_step (struct frame_info *frame);
97
 
98
/* Tell if the program counter value in MEMADDR is in a MIPS16
99
   function.  */
100
extern int mips_pc_is_mips16 (bfd_vma memaddr);
101
 
102
/* Return the currently configured (or set) saved register size. */
103
extern unsigned int mips_abi_regsize (struct gdbarch *gdbarch);
104
 
105
/* Target descriptions which only indicate the size of general
106
   registers.  */
107
extern struct target_desc *mips_tdesc_gp32;
108
extern struct target_desc *mips_tdesc_gp64;
109
 
110
#endif /* MIPS_TDEP_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.