Instructions are no longer member functions
[riscv-isa-sim.git] / riscv / trap.cc
index ba0d867e2c7a94d9f3c9855602978f637ce6fead..ead3a0047c6cdab0abe24121007da8791e3417f6 100644 (file)
@@ -1,12 +1,15 @@
-// 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
+  const char* fmt = uint8_t(which) == which ? "trap #%u" : "interrupt #%u";
+  sprintf(_name, fmt, uint8_t(which));
+  return _name;
+}
 
-  return (unsigned)t >= sizeof(names)/sizeof(names[0]) ? "unknown" : names[t];
+void mem_trap_t::side_effects(state_t* state)
+{
+  state->badvaddr = badvaddr;
 }