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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-6.8/] [gdb/] [mips-linux-tdep.h] - Blame information for rev 866

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

Line No. Rev Author Line
1 24 jeremybenn
/* Target-dependent code for GNU/Linux on MIPS processors.
2
 
3
   Copyright 2006, 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
/* Copied from <asm/elf.h>.  */
21
#define ELF_NGREG       45
22
#define ELF_NFPREG      33
23
 
24
typedef unsigned char mips_elf_greg_t[4];
25
typedef mips_elf_greg_t mips_elf_gregset_t[ELF_NGREG];
26
 
27
typedef unsigned char mips_elf_fpreg_t[8];
28
typedef mips_elf_fpreg_t mips_elf_fpregset_t[ELF_NFPREG];
29
 
30
/* 0 - 31 are integer registers, 32 - 63 are fp registers.  */
31
#define FPR_BASE        32
32
#define PC              64
33
#define CAUSE           65
34
#define BADVADDR        66
35
#define MMHI            67
36
#define MMLO            68
37
#define FPC_CSR         69
38
#define FPC_EIR         70
39
 
40
#define EF_REG0                 6
41
#define EF_REG31                37
42
#define EF_LO                   38
43
#define EF_HI                   39
44
#define EF_CP0_EPC              40
45
#define EF_CP0_BADVADDR         41
46
#define EF_CP0_STATUS           42
47
#define EF_CP0_CAUSE            43
48
 
49
#define EF_SIZE                 180
50
 
51
void mips_supply_gregset (struct regcache *, const mips_elf_gregset_t *);
52
void mips_fill_gregset (const struct regcache *, mips_elf_gregset_t *, int);
53
void mips_supply_fpregset (struct regcache *, const mips_elf_fpregset_t *);
54
void mips_fill_fpregset (const struct regcache *, mips_elf_fpregset_t *, int);
55
 
56
/* 64-bit support.  */
57
 
58
/* Copied from <asm/elf.h>.  */
59
#define MIPS64_ELF_NGREG       45
60
#define MIPS64_ELF_NFPREG      33
61
 
62
typedef unsigned char mips64_elf_greg_t[8];
63
typedef mips64_elf_greg_t mips64_elf_gregset_t[MIPS64_ELF_NGREG];
64
 
65
typedef unsigned char mips64_elf_fpreg_t[8];
66
typedef mips64_elf_fpreg_t mips64_elf_fpregset_t[MIPS64_ELF_NFPREG];
67
 
68
/* 0 - 31 are integer registers, 32 - 63 are fp registers.  */
69
#define MIPS64_FPR_BASE                 32
70
#define MIPS64_PC                       64
71
#define MIPS64_CAUSE                    65
72
#define MIPS64_BADVADDR                 66
73
#define MIPS64_MMHI                     67
74
#define MIPS64_MMLO                     68
75
#define MIPS64_FPC_CSR                  69
76
#define MIPS64_FPC_EIR                  70
77
 
78
#define MIPS64_EF_REG0                   0
79
#define MIPS64_EF_REG31                 31
80
#define MIPS64_EF_LO                    32
81
#define MIPS64_EF_HI                    33
82
#define MIPS64_EF_CP0_EPC               34
83
#define MIPS64_EF_CP0_BADVADDR          35
84
#define MIPS64_EF_CP0_STATUS            36
85
#define MIPS64_EF_CP0_CAUSE             37
86
 
87
#define MIPS64_EF_SIZE                  304
88
 
89
void mips64_supply_gregset (struct regcache *, const mips64_elf_gregset_t *);
90
void mips64_fill_gregset (const struct regcache *, mips64_elf_gregset_t *, int);
91
void mips64_supply_fpregset (struct regcache *, const mips64_elf_fpregset_t *);
92
void mips64_fill_fpregset (const struct regcache *, mips64_elf_fpregset_t *, int);
93
 
94
enum {
95
  /* The Linux kernel stores an error code from any interrupted
96
     syscall in a "register" (in $0's save slot).  */
97
  MIPS_RESTART_REGNUM = MIPS_LAST_EMBED_REGNUM + 1
98
};
99
 
100
/* Return 1 if MIPS_RESTART_REGNUM is usable.  */
101
 
102
int mips_linux_restart_reg_p (struct gdbarch *gdbarch);

powered by: WebSVN 2.1.0

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