Merge pull request #117 from riscv/multicore_debug
[riscv-isa-sim.git] / riscv / trap.cc
index d873a19f9d5231eda2468c8f8759043e5e40b80a..4ac2f1f717423ca0ba133840b54abfcfb37c0a3e 100644 (file)
@@ -1,10 +1,12 @@
+// See LICENSE for license details.
+
 #include "trap.h"
+#include "processor.h"
+#include <cstdio>
 
-const char* trap_name(trap_t t)
+const char* trap_t::name()
 {
-  #define DECLARE_TRAP(x) "trap_"#x
-  static const char* names[] = { TRAP_LIST };
-  #undef DECLARE_TRAP
-
-  return (unsigned)t >= sizeof(names)/sizeof(names[0]) ? "unknown" : names[t];
+  const char* fmt = uint8_t(which) == which ? "trap #%u" : "interrupt #%u";
+  sprintf(_name, fmt, uint8_t(which));
+  return _name;
 }