62 lines
1.7 KiB
C
62 lines
1.7 KiB
C
#ifndef TARGET__RISCV__GDB_REGS_H
|
|
#define TARGET__RISCV__GDB_REGS_H
|
|
|
|
// gdb's register list is defined in riscv_gdb_reg_names gdb/riscv-tdep.c in
|
|
// its source tree. We must interpret the numbers the same here.
|
|
enum gdb_regno {
|
|
GDB_REGNO_ZERO = 0, /* Read-only register, always 0. */
|
|
GDB_REGNO_RA = 1, /* Return Address. */
|
|
GDB_REGNO_SP = 2, /* Stack Pointer. */
|
|
GDB_REGNO_GP = 3, /* Global Pointer. */
|
|
GDB_REGNO_TP = 4, /* Thread Pointer. */
|
|
GDB_REGNO_T0,
|
|
GDB_REGNO_T1,
|
|
GDB_REGNO_T2,
|
|
GDB_REGNO_S0 = 8,
|
|
GDB_REGNO_FP = 8, /* Frame Pointer. */
|
|
GDB_REGNO_S1,
|
|
GDB_REGNO_A0 = 10, /* First argument. */
|
|
GDB_REGNO_A1 = 11, /* Second argument. */
|
|
GDB_REGNO_A2,
|
|
GDB_REGNO_A3,
|
|
GDB_REGNO_A4,
|
|
GDB_REGNO_A5,
|
|
GDB_REGNO_A6,
|
|
GDB_REGNO_A7,
|
|
GDB_REGNO_S2,
|
|
GDB_REGNO_S3,
|
|
GDB_REGNO_S4,
|
|
GDB_REGNO_S5,
|
|
GDB_REGNO_S6,
|
|
GDB_REGNO_S7,
|
|
GDB_REGNO_S8,
|
|
GDB_REGNO_S9,
|
|
GDB_REGNO_S10,
|
|
GDB_REGNO_S11,
|
|
GDB_REGNO_T3,
|
|
GDB_REGNO_T4,
|
|
GDB_REGNO_T5,
|
|
GDB_REGNO_T6,
|
|
GDB_REGNO_XPR31 = GDB_REGNO_T6,
|
|
|
|
GDB_REGNO_PC = 32,
|
|
GDB_REGNO_FPR0 = 33,
|
|
GDB_REGNO_FPR31 = GDB_REGNO_FPR0 + 31,
|
|
GDB_REGNO_CSR0 = 65,
|
|
GDB_REGNO_TSELECT = CSR_TSELECT + GDB_REGNO_CSR0,
|
|
GDB_REGNO_TDATA1 = CSR_TDATA1 + GDB_REGNO_CSR0,
|
|
GDB_REGNO_TDATA2 = CSR_TDATA2 + GDB_REGNO_CSR0,
|
|
GDB_REGNO_MISA = CSR_MISA + GDB_REGNO_CSR0,
|
|
GDB_REGNO_DPC = CSR_DPC + GDB_REGNO_CSR0,
|
|
GDB_REGNO_DCSR = CSR_DCSR + GDB_REGNO_CSR0,
|
|
GDB_REGNO_DSCRATCH = CSR_DSCRATCH + GDB_REGNO_CSR0,
|
|
GDB_REGNO_MSTATUS = CSR_MSTATUS + GDB_REGNO_CSR0,
|
|
GDB_REGNO_CSR4095 = GDB_REGNO_CSR0 + 4095,
|
|
GDB_REGNO_PRIV = 4161,
|
|
GDB_REGNO_COUNT
|
|
};
|
|
|
|
const char *gdb_regno_name(enum gdb_regno regno);
|
|
|
|
#endif
|