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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [uclinux/] [uClinux-2.0.x/] [include/] [asm-mips/] [gdb-stub.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 199 simons
/*
2
 *  include/asm-mips/gdb-stub.h
3
 *
4
 *  Copyright (C) 1995 Andreas Busse
5
 */
6
 
7
#ifndef __ASM_MIPS_GDB_STUB_H
8
#define __ASM_MIPS_GDB_STUB_H
9
 
10
 
11
/*
12
 * important register numbers
13
 */
14
 
15
#define REG_EPC                 37
16
#define REG_FP                  72
17
#define REG_SP                  29
18
 
19
/*
20
 * Stack layout for the GDB exception handler
21
 * Derived from the stack layout described in asm-mips/stackframe.h
22
 *
23
 * The first PTRSIZE*5 bytes are argument save space for C subroutines.
24
 */
25
#define NUMREGS                 90
26
 
27
#define GDB_FR_REG0             (PTRSIZE*5)                     /* 0 */
28
#define GDB_FR_REG1             ((GDB_FR_REG0) + 4)             /* 1 */
29
#define GDB_FR_REG2             ((GDB_FR_REG1) + 4)             /* 2 */
30
#define GDB_FR_REG3             ((GDB_FR_REG2) + 4)             /* 3 */
31
#define GDB_FR_REG4             ((GDB_FR_REG3) + 4)             /* 4 */
32
#define GDB_FR_REG5             ((GDB_FR_REG4) + 4)             /* 5 */
33
#define GDB_FR_REG6             ((GDB_FR_REG5) + 4)             /* 6 */
34
#define GDB_FR_REG7             ((GDB_FR_REG6) + 4)             /* 7 */
35
#define GDB_FR_REG8             ((GDB_FR_REG7) + 4)             /* 8 */
36
#define GDB_FR_REG9             ((GDB_FR_REG8) + 4)             /* 9 */
37
#define GDB_FR_REG10            ((GDB_FR_REG9) + 4)             /* 10 */
38
#define GDB_FR_REG11            ((GDB_FR_REG10) + 4)            /* 11 */
39
#define GDB_FR_REG12            ((GDB_FR_REG11) + 4)            /* 12 */
40
#define GDB_FR_REG13            ((GDB_FR_REG12) + 4)            /* 13 */
41
#define GDB_FR_REG14            ((GDB_FR_REG13) + 4)            /* 14 */
42
#define GDB_FR_REG15            ((GDB_FR_REG14) + 4)            /* 15 */
43
#define GDB_FR_REG16            ((GDB_FR_REG15) + 4)            /* 16 */
44
#define GDB_FR_REG17            ((GDB_FR_REG16) + 4)            /* 17 */
45
#define GDB_FR_REG18            ((GDB_FR_REG17) + 4)            /* 18 */
46
#define GDB_FR_REG19            ((GDB_FR_REG18) + 4)            /* 19 */
47
#define GDB_FR_REG20            ((GDB_FR_REG19) + 4)            /* 20 */
48
#define GDB_FR_REG21            ((GDB_FR_REG20) + 4)            /* 21 */
49
#define GDB_FR_REG22            ((GDB_FR_REG21) + 4)            /* 22 */
50
#define GDB_FR_REG23            ((GDB_FR_REG22) + 4)            /* 23 */
51
#define GDB_FR_REG24            ((GDB_FR_REG23) + 4)            /* 24 */
52
#define GDB_FR_REG25            ((GDB_FR_REG24) + 4)            /* 25 */
53
#define GDB_FR_REG26            ((GDB_FR_REG25) + 4)            /* 26 */
54
#define GDB_FR_REG27            ((GDB_FR_REG26) + 4)            /* 27 */
55
#define GDB_FR_REG28            ((GDB_FR_REG27) + 4)            /* 28 */
56
#define GDB_FR_REG29            ((GDB_FR_REG28) + 4)            /* 29 */
57
#define GDB_FR_REG30            ((GDB_FR_REG29) + 4)            /* 30 */
58
#define GDB_FR_REG31            ((GDB_FR_REG30) + 4)            /* 31 */
59
 
60
/*
61
 * Saved special registers
62
 */
63
#define GDB_FR_STATUS           ((GDB_FR_REG31) + 4)            /* 32 */
64
#define GDB_FR_LO               ((GDB_FR_STATUS) + 4)           /* 33 */
65
#define GDB_FR_HI               ((GDB_FR_LO) + 4)               /* 34 */
66
#define GDB_FR_BADVADDR         ((GDB_FR_HI) + 4)               /* 35 */
67
#define GDB_FR_CAUSE            ((GDB_FR_BADVADDR) + 4)         /* 36 */
68
#define GDB_FR_EPC              ((GDB_FR_CAUSE) + 4)            /* 37 */
69
 
70
/*
71
 * Saved floating point registers
72
 */
73
#define GDB_FR_FPR0             ((GDB_FR_EPC) + 4)              /* 38 */
74
#define GDB_FR_FPR1             ((GDB_FR_FPR0) + 4)             /* 39 */
75
#define GDB_FR_FPR2             ((GDB_FR_FPR1) + 4)             /* 40 */
76
#define GDB_FR_FPR3             ((GDB_FR_FPR2) + 4)             /* 41 */
77
#define GDB_FR_FPR4             ((GDB_FR_FPR3) + 4)             /* 42 */
78
#define GDB_FR_FPR5             ((GDB_FR_FPR4) + 4)             /* 43 */
79
#define GDB_FR_FPR6             ((GDB_FR_FPR5) + 4)             /* 44 */
80
#define GDB_FR_FPR7             ((GDB_FR_FPR6) + 4)             /* 45 */
81
#define GDB_FR_FPR8             ((GDB_FR_FPR7) + 4)             /* 46 */
82
#define GDB_FR_FPR9             ((GDB_FR_FPR8) + 4)             /* 47 */
83
#define GDB_FR_FPR10            ((GDB_FR_FPR9) + 4)             /* 48 */
84
#define GDB_FR_FPR11            ((GDB_FR_FPR10) + 4)            /* 49 */
85
#define GDB_FR_FPR12            ((GDB_FR_FPR11) + 4)            /* 50 */
86
#define GDB_FR_FPR13            ((GDB_FR_FPR12) + 4)            /* 51 */
87
#define GDB_FR_FPR14            ((GDB_FR_FPR13) + 4)            /* 52 */
88
#define GDB_FR_FPR15            ((GDB_FR_FPR14) + 4)            /* 53 */
89
#define GDB_FR_FPR16            ((GDB_FR_FPR15) + 4)            /* 54 */
90
#define GDB_FR_FPR17            ((GDB_FR_FPR16) + 4)            /* 55 */
91
#define GDB_FR_FPR18            ((GDB_FR_FPR17) + 4)            /* 56 */
92
#define GDB_FR_FPR19            ((GDB_FR_FPR18) + 4)            /* 57 */
93
#define GDB_FR_FPR20            ((GDB_FR_FPR19) + 4)            /* 58 */
94
#define GDB_FR_FPR21            ((GDB_FR_FPR20) + 4)            /* 59 */
95
#define GDB_FR_FPR22            ((GDB_FR_FPR21) + 4)            /* 60 */
96
#define GDB_FR_FPR23            ((GDB_FR_FPR22) + 4)            /* 61 */
97
#define GDB_FR_FPR24            ((GDB_FR_FPR23) + 4)            /* 62 */
98
#define GDB_FR_FPR25            ((GDB_FR_FPR24) + 4)            /* 63 */
99
#define GDB_FR_FPR26            ((GDB_FR_FPR25) + 4)            /* 64 */
100
#define GDB_FR_FPR27            ((GDB_FR_FPR26) + 4)            /* 65 */
101
#define GDB_FR_FPR28            ((GDB_FR_FPR27) + 4)            /* 66 */
102
#define GDB_FR_FPR29            ((GDB_FR_FPR28) + 4)            /* 67 */
103
#define GDB_FR_FPR30            ((GDB_FR_FPR29) + 4)            /* 68 */
104
#define GDB_FR_FPR31            ((GDB_FR_FPR30) + 4)            /* 69 */
105
 
106
#define GDB_FR_FSR              ((GDB_FR_FPR31) + 4)            /* 70 */
107
#define GDB_FR_FIR              ((GDB_FR_FSR) + 4)              /* 71 */
108
#define GDB_FR_FRP              ((GDB_FR_FIR) + 4)              /* 72 */
109
 
110
#define GDB_FR_DUMMY            ((GDB_FR_FRP) + 4)              /* 73, unused ??? */
111
 
112
/*
113
 * Again, CP0 registers
114
 */
115
#define GDB_FR_CP0_INDEX        ((GDB_FR_DUMMY) + 4)            /* 74 */
116
#define GDB_FR_CP0_RANDOM       ((GDB_FR_CP0_INDEX) + 4)        /* 75 */
117
#define GDB_FR_CP0_ENTRYLO0     ((GDB_FR_CP0_RANDOM) + 4)       /* 76 */
118
#define GDB_FR_CP0_ENTRYLO1     ((GDB_FR_CP0_ENTRYLO0) + 4)     /* 77 */
119
#define GDB_FR_CP0_REG4         ((GDB_FR_CP0_ENTRYLO1) + 4)     /* 78 */
120
#define GDB_FR_CP0_PAGEMASK     ((GDB_FR_CP0_REG4) + 4)         /* 79 */
121
#define GDB_FR_CP0_WIRED        ((GDB_FR_CP0_PAGEMASK) + 4)     /* 80 */
122
#define GDB_FR_CP0_REG7         ((GDB_FR_CP0_WIRED) + 4)        /* 81 */
123
#define GDB_FR_CP0_REG8         ((GDB_FR_CP0_REG7) + 4)         /* 82 */
124
#define GDB_FR_CP0_REG9         ((GDB_FR_CP0_REG8) + 4)         /* 83 */
125
#define GDB_FR_CP0_ENTRYHI      ((GDB_FR_CP0_REG9) + 4)         /* 84 */
126
#define GDB_FR_CP0_REG11        ((GDB_FR_CP0_ENTRYHI) + 4)      /* 85 */
127
#define GDB_FR_CP0_REG12        ((GDB_FR_CP0_REG11) + 4)        /* 86 */
128
#define GDB_FR_CP0_REG13        ((GDB_FR_CP0_REG12) + 4)        /* 87 */
129
#define GDB_FR_CP0_REG14        ((GDB_FR_CP0_REG13) + 4)        /* 88 */
130
#define GDB_FR_CP0_PRID         ((GDB_FR_CP0_REG14) + 4)        /* 89 */
131
 
132
#define GDB_FR_SIZE             ((((GDB_FR_CP0_PRID) + 4) + (PTRSIZE-1)) & ~(PTRSIZE-1))
133
 
134
#ifndef __LANGUAGE_ASSEMBLY__
135
 
136
/*
137
 * This is the same as above, but for the high-level
138
 * part of the GDB stub.
139
 */
140
 
141
struct gdb_regs {
142
        /*
143
         * Pad bytes for argument save space on the stack
144
         * 20/40 Bytes for 32/64 bit code
145
         */
146
        unsigned long pad0[5];
147
 
148
        /*
149
         * saved main processor registers
150
         */
151
        long     reg0,  reg1,  reg2,  reg3,  reg4,  reg5,  reg6,  reg7;
152
        long     reg8,  reg9, reg10, reg11, reg12, reg13, reg14, reg15;
153
        long    reg16, reg17, reg18, reg19, reg20, reg21, reg22, reg23;
154
        long    reg24, reg25, reg26, reg27, reg28, reg29, reg30, reg31;
155
 
156
        /*
157
         * Saved special registers
158
         */
159
        long    cp0_status;
160
        long    lo;
161
        long    hi;
162
        long    cp0_badvaddr;
163
        long    cp0_cause;
164
        long    cp0_epc;
165
 
166
        /*
167
         * Saved floating point registers
168
         */
169
        long    fpr0,  fpr1,  fpr2,  fpr3,  fpr4,  fpr5,  fpr6,  fpr7;
170
        long    fpr8,  fpr9,  fpr10, fpr11, fpr12, fpr13, fpr14, fpr15;
171
        long    fpr16, fpr17, fpr18, fpr19, fpr20, fpr21, fpr22, fpr23;
172
        long    fpr24, fpr25, fpr26, fpr27, fpr28, fpr29, fpr30, fpr31;
173
 
174
        long    cp1_fsr;
175
        long    cp1_fir;
176
 
177
        /*
178
         * Frame pointer
179
         */
180
        long    frame_ptr;
181
        long    dummy;          /* unused */
182
 
183
        /*
184
         * saved cp0 registers
185
         */
186
        long    cp0_index;
187
        long    cp0_random;
188
        long    cp0_entrylo0;
189
        long    cp0_entrylo1;
190
        long    cp0_reg4;
191
        long    cp0_pagemask;
192
        long    cp0_wired;
193
        long    cp0_reg7;
194
        long    cp0_reg8;
195
        long    cp0_reg9;
196
        long    cp0_entryhi;
197
        long    cp0_reg11;
198
        long    cp0_reg12;
199
        long    cp0_reg13;
200
        long    cp0_reg14;
201
        long    cp0_prid;
202
};
203
 
204
/*
205
 * Prototypes
206
 */
207
 
208
void set_debug_traps(void);
209
 
210
#endif /* __LANGUAGE_ASSEMBLY */
211
#endif /* __ASM_MIPS_GDB_STUB_H */

powered by: WebSVN 2.1.0

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