aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPalmer Dabbelt <palmer@dabbelt.com>2018-03-30 09:59:06 -0700
committerGitHub <noreply@github.com>2018-03-30 09:59:06 -0700
commit3242d9b91811a52a06c1eeeb14c0de898800e0d4 (patch)
tree5a9c1fd21b7832d2b7c31f0a8167baf271a39dec
parent1da69b975beeda193d5fa47950be5883ca20ad13 (diff)
parentfa2aaa3f8ad1284f4ca2ae17ad173eb1605fea1a (diff)
downloadspike-3242d9b91811a52a06c1eeeb14c0de898800e0d4.zip
spike-3242d9b91811a52a06c1eeeb14c0de898800e0d4.tar.gz
spike-3242d9b91811a52a06c1eeeb14c0de898800e0d4.tar.bz2
Merge pull request #189 from pmundkur/pm-csr-name-api
Add an api to get the name for a CSR.
-rw-r--r--riscv/disasm.h1
-rw-r--r--riscv/regnames.cc9
2 files changed, 10 insertions, 0 deletions
diff --git a/riscv/disasm.h b/riscv/disasm.h
index e2981d4..94e007a 100644
--- a/riscv/disasm.h
+++ b/riscv/disasm.h
@@ -10,6 +10,7 @@
extern const char* xpr_name[NXPR];
extern const char* fpr_name[NFPR];
+extern const char* csr_name(int which);
class arg_t
{
diff --git a/riscv/regnames.cc b/riscv/regnames.cc
index c574345..0bf8d9c 100644
--- a/riscv/regnames.cc
+++ b/riscv/regnames.cc
@@ -15,3 +15,12 @@ const char* fpr_name[] = {
"fa6", "fa7", "fs2", "fs3", "fs4", "fs5", "fs6", "fs7",
"fs8", "fs9", "fs10", "fs11", "ft8", "ft9", "ft10", "ft11"
};
+
+const char* csr_name(int which) {
+ switch (which) {
+ #define DECLARE_CSR(name, number) case number: return #name;
+ #include "encoding.h"
+ #undef DECLARE_CSR
+ }
+ return "unknown-csr";
+}