From 420ecd9ce8a3d61f950bf24d8d7b8827d09f59db Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Tue, 23 Oct 2018 13:23:34 +0100 Subject: [PATCH] gdb/riscv: Give user-friendly names for CSRs The recent commit: commit 0dbfcfffe9abbc5198bce95eb8c66b6bc9b364be Date: Tue Oct 16 22:40:09 2018 +0100 gdb/riscv: Fix register access for register aliases broke the CSR names for RISC-V, now all of the CSRs have names like, csr0, csr1, csr2, etc. This commit restores the previous user-friendly names. gdb/ChangeLog: * riscv-tdep.c (riscv_register_name): Use the user-friendly names for CSRs. --- gdb/ChangeLog | 5 +++++ gdb/riscv-tdep.c | 19 +++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 88d76db13a..db4c6b1a32 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-10-23 Andrew Burgess + + * riscv-tdep.c (riscv_register_name): Use the user-friendly names + for CSRs. + 2018-10-23 Joel Brobecker * riscv-tdep.c (riscv_gdbarch_init): Set the gdbarch's diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c index 48ca2accb4..f02420dfe5 100644 --- a/gdb/riscv-tdep.c +++ b/gdb/riscv-tdep.c @@ -482,11 +482,22 @@ riscv_register_name (struct gdbarch *gdbarch, int regnum) if (regnum >= RISCV_FIRST_CSR_REGNUM && regnum <= RISCV_LAST_CSR_REGNUM) { - static char buf[20]; +#define DECLARE_CSR(NAME,VALUE) \ + case RISCV_ ## VALUE ## _REGNUM: return # NAME; - xsnprintf (buf, sizeof (buf), "csr%d", - regnum - RISCV_FIRST_CSR_REGNUM); - return buf; + switch (regnum) + { + #include "opcode/riscv-opc.h" + default: + { + static char buf[20]; + + xsnprintf (buf, sizeof (buf), "csr%d", + regnum - RISCV_FIRST_CSR_REGNUM); + return buf; + } + } +#undef DECLARE_CSR } if (regnum == RISCV_PRIV_REGNUM) -- 2.34.1