aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2022-03-17 15:43:03 -0700
committerAndrew Waterman <andrew@sifive.com>2022-03-17 15:43:03 -0700
commit562d66b814e1abc07304f4277a514bf6ac947c9a (patch)
tree3dd8488d454e6f3d2f798e757063701881ae1160
parent24b962dec17e78d74e4040f572b429e57eb7ee8b (diff)
downloadspike-562d66b814e1abc07304f4277a514bf6ac947c9a.zip
spike-562d66b814e1abc07304f4277a514bf6ac947c9a.tar.gz
spike-562d66b814e1abc07304f4277a514bf6ac947c9a.tar.bz2
Inline trap_t methods so they can be used in fesvr code
-rw-r--r--riscv/riscv.mk.in1
-rw-r--r--riscv/trap.cc12
-rw-r--r--riscv/trap.h11
3 files changed, 9 insertions, 15 deletions
diff --git a/riscv/riscv.mk.in b/riscv/riscv.mk.in
index 6731661..a160bb8 100644
--- a/riscv/riscv.mk.in
+++ b/riscv/riscv.mk.in
@@ -43,7 +43,6 @@ riscv_srcs = \
dts.cc \
sim.cc \
interactive.cc \
- trap.cc \
cachesim.cc \
mmu.cc \
extension.cc \
diff --git a/riscv/trap.cc b/riscv/trap.cc
deleted file mode 100644
index 4ac2f1f..0000000
--- a/riscv/trap.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-// See LICENSE for license details.
-
-#include "trap.h"
-#include "processor.h"
-#include <cstdio>
-
-const char* trap_t::name()
-{
- const char* fmt = uint8_t(which) == which ? "trap #%u" : "interrupt #%u";
- sprintf(_name, fmt, uint8_t(which));
- return _name;
-}
diff --git a/riscv/trap.h b/riscv/trap.h
index 5ae7806..1cd62e1 100644
--- a/riscv/trap.h
+++ b/riscv/trap.h
@@ -4,7 +4,7 @@
#define _RISCV_TRAP_H
#include "decode.h"
-#include <stdlib.h>
+#include <cstdio>
struct state_t;
@@ -12,7 +12,6 @@ class trap_t
{
public:
trap_t(reg_t which) : which(which) {}
- virtual const char* name();
virtual bool has_gva() { return false; }
virtual bool has_tval() { return false; }
virtual reg_t get_tval() { return 0; }
@@ -21,6 +20,14 @@ class trap_t
virtual bool has_tinst() { return false; }
virtual reg_t get_tinst() { return 0; }
reg_t cause() { return which; }
+
+ virtual const char* name()
+ {
+ const char* fmt = uint8_t(which) == which ? "trap #%u" : "interrupt #%u";
+ sprintf(_name, fmt, uint8_t(which));
+ return _name;
+ }
+
private:
char _name[16];
reg_t which;