target/riscv: fix use of uninitialized value
[fw/openocd] / src / target / riscv / gdb_regs.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2
3 #ifndef TARGET__RISCV__GDB_REGS_H
4 #define TARGET__RISCV__GDB_REGS_H
5
6 /* gdb's register list is defined in riscv_gdb_reg_names gdb/riscv-tdep.c in
7  * its source tree. We must interpret the numbers the same here. */
8 enum gdb_regno {
9         GDB_REGNO_ZERO = 0,        /* Read-only register, always 0.  */
10         GDB_REGNO_RA = 1,          /* Return Address.  */
11         GDB_REGNO_SP = 2,          /* Stack Pointer.  */
12         GDB_REGNO_GP = 3,          /* Global Pointer.  */
13         GDB_REGNO_TP = 4,          /* Thread Pointer.  */
14         GDB_REGNO_T0,
15         GDB_REGNO_T1,
16         GDB_REGNO_T2,
17         GDB_REGNO_S0 = 8,
18         GDB_REGNO_FP = 8,          /* Frame Pointer.  */
19         GDB_REGNO_S1,
20         GDB_REGNO_A0 = 10,         /* First argument.  */
21         GDB_REGNO_A1 = 11,         /* Second argument.  */
22         GDB_REGNO_A2,
23         GDB_REGNO_A3,
24         GDB_REGNO_A4,
25         GDB_REGNO_A5,
26         GDB_REGNO_XPR15 = GDB_REGNO_A5,
27         GDB_REGNO_A6,
28         GDB_REGNO_A7,
29         GDB_REGNO_S2,
30         GDB_REGNO_S3,
31         GDB_REGNO_S4,
32         GDB_REGNO_S5,
33         GDB_REGNO_S6,
34         GDB_REGNO_S7,
35         GDB_REGNO_S8,
36         GDB_REGNO_S9,
37         GDB_REGNO_S10,
38         GDB_REGNO_S11,
39         GDB_REGNO_T3,
40         GDB_REGNO_T4,
41         GDB_REGNO_T5,
42         GDB_REGNO_T6,
43         GDB_REGNO_XPR31 = GDB_REGNO_T6,
44
45         GDB_REGNO_PC = 32,
46         GDB_REGNO_FPR0 = 33,
47         GDB_REGNO_FT0 = GDB_REGNO_FPR0,
48         GDB_REGNO_FT1,
49         GDB_REGNO_FT2,
50         GDB_REGNO_FT3,
51         GDB_REGNO_FT4,
52         GDB_REGNO_FT5,
53         GDB_REGNO_FT6,
54         GDB_REGNO_FT7,
55         GDB_REGNO_FS0,
56         GDB_REGNO_FS1,
57         GDB_REGNO_FA0,
58         GDB_REGNO_FA1,
59         GDB_REGNO_FA2,
60         GDB_REGNO_FA3,
61         GDB_REGNO_FA4,
62         GDB_REGNO_FA5,
63         GDB_REGNO_FA6,
64         GDB_REGNO_FA7,
65         GDB_REGNO_FS2,
66         GDB_REGNO_FS3,
67         GDB_REGNO_FS4,
68         GDB_REGNO_FS5,
69         GDB_REGNO_FS6,
70         GDB_REGNO_FS7,
71         GDB_REGNO_FS8,
72         GDB_REGNO_FS9,
73         GDB_REGNO_FS10,
74         GDB_REGNO_FS11,
75         GDB_REGNO_FT8,
76         GDB_REGNO_FT9,
77         GDB_REGNO_FT10,
78         GDB_REGNO_FT11,
79         GDB_REGNO_FPR31 = GDB_REGNO_FT11,
80         GDB_REGNO_CSR0 = 65,
81         GDB_REGNO_VSTART = CSR_VSTART + GDB_REGNO_CSR0,
82         GDB_REGNO_VXSAT = CSR_VXSAT + GDB_REGNO_CSR0,
83         GDB_REGNO_VXRM = CSR_VXRM + GDB_REGNO_CSR0,
84         GDB_REGNO_VLENB = CSR_VLENB + GDB_REGNO_CSR0,
85         GDB_REGNO_VL = CSR_VL + GDB_REGNO_CSR0,
86         GDB_REGNO_VTYPE = CSR_VTYPE + GDB_REGNO_CSR0,
87         GDB_REGNO_TSELECT = CSR_TSELECT + GDB_REGNO_CSR0,
88         GDB_REGNO_TDATA1 = CSR_TDATA1 + GDB_REGNO_CSR0,
89         GDB_REGNO_TDATA2 = CSR_TDATA2 + GDB_REGNO_CSR0,
90         GDB_REGNO_MISA = CSR_MISA + GDB_REGNO_CSR0,
91         GDB_REGNO_DPC = CSR_DPC + GDB_REGNO_CSR0,
92         GDB_REGNO_DCSR = CSR_DCSR + GDB_REGNO_CSR0,
93         GDB_REGNO_DSCRATCH0 = CSR_DSCRATCH0 + GDB_REGNO_CSR0,
94         GDB_REGNO_MSTATUS = CSR_MSTATUS + GDB_REGNO_CSR0,
95         GDB_REGNO_MEPC = CSR_MEPC + GDB_REGNO_CSR0,
96         GDB_REGNO_MCAUSE = CSR_MCAUSE + GDB_REGNO_CSR0,
97         GDB_REGNO_SATP = CSR_SATP + GDB_REGNO_CSR0,
98         GDB_REGNO_CSR4095 = GDB_REGNO_CSR0 + 4095,
99         GDB_REGNO_PRIV = 4161,
100         /* It's still undecided what register numbers GDB will actually use for
101          * these. See
102          * https://groups.google.com/a/groups.riscv.org/d/msg/sw-dev/7lQYiTUN9Ms/gTxGhzaYBQAJ
103          */
104         GDB_REGNO_V0, GDB_REGNO_V1, GDB_REGNO_V2, GDB_REGNO_V3,
105         GDB_REGNO_V4, GDB_REGNO_V5, GDB_REGNO_V6, GDB_REGNO_V7,
106         GDB_REGNO_V8, GDB_REGNO_V9, GDB_REGNO_V10, GDB_REGNO_V11,
107         GDB_REGNO_V12, GDB_REGNO_V13, GDB_REGNO_V14, GDB_REGNO_V15,
108         GDB_REGNO_V16, GDB_REGNO_V17, GDB_REGNO_V18, GDB_REGNO_V19,
109         GDB_REGNO_V20, GDB_REGNO_V21, GDB_REGNO_V22, GDB_REGNO_V23,
110         GDB_REGNO_V24, GDB_REGNO_V25, GDB_REGNO_V26, GDB_REGNO_V27,
111         GDB_REGNO_V28, GDB_REGNO_V29, GDB_REGNO_V30, GDB_REGNO_V31,
112         GDB_REGNO_COUNT
113 };
114
115 const char *gdb_regno_name(enum gdb_regno regno);
116
117 #endif