1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 #ifndef TARGET__RISCV__GDB_REGS_H
4 #define TARGET__RISCV__GDB_REGS_H
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. */
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. */
18 GDB_REGNO_FP = 8, /* Frame Pointer. */
20 GDB_REGNO_A0 = 10, /* First argument. */
21 GDB_REGNO_A1 = 11, /* Second argument. */
26 GDB_REGNO_XPR15 = GDB_REGNO_A5,
43 GDB_REGNO_XPR31 = GDB_REGNO_T6,
47 GDB_REGNO_FT0 = GDB_REGNO_FPR0,
79 GDB_REGNO_FPR31 = GDB_REGNO_FT11,
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
102 * https://groups.google.com/a/groups.riscv.org/d/msg/sw-dev/7lQYiTUN9Ms/gTxGhzaYBQAJ
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,
115 const char *gdb_regno_name(enum gdb_regno regno);