aboutsummaryrefslogtreecommitdiff
path: root/riscv/trap.cc
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@cs.berkeley.edu>2013-08-11 19:10:51 -0700
committerAndrew Waterman <waterman@cs.berkeley.edu>2013-08-11 19:10:51 -0700
commit04c2d491c4bbb424a59273d4ebee62ddfe3379f9 (patch)
treeadbbe9bc3d7694c289aa7d18cf4a425d106a1c4a /riscv/trap.cc
parentb0af18ed449fb433ae5fce1cf8eb5e1e25ae9190 (diff)
downloadriscv-isa-sim-04c2d491c4bbb424a59273d4ebee62ddfe3379f9.zip
riscv-isa-sim-04c2d491c4bbb424a59273d4ebee62ddfe3379f9.tar.gz
riscv-isa-sim-04c2d491c4bbb424a59273d4ebee62ddfe3379f9.tar.bz2
Instructions are no longer member functions
Diffstat (limited to 'riscv/trap.cc')
-rw-r--r--riscv/trap.cc17
1 files changed, 10 insertions, 7 deletions
diff --git a/riscv/trap.cc b/riscv/trap.cc
index ba0d867..ead3a00 100644
--- a/riscv/trap.cc
+++ b/riscv/trap.cc
@@ -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;
}