aboutsummaryrefslogtreecommitdiff
path: root/hwacha
diff options
context:
space:
mode:
authorYunsup Lee <yunsup@cs.berkeley.edu>2013-10-21 18:53:02 -0700
committerYunsup Lee <yunsup@cs.berkeley.edu>2013-10-21 18:53:02 -0700
commit1bcda9195b55d23fe373b23ae38884fd7a4ecef8 (patch)
tree6340800f2ef20d487c199a3e6aeeb4cad3840b01 /hwacha
parent74fe66dcecfa113b39809ca6ca66e1d1645ca1ae (diff)
downloadriscv-isa-sim-1bcda9195b55d23fe373b23ae38884fd7a4ecef8.zip
riscv-isa-sim-1bcda9195b55d23fe373b23ae38884fd7a4ecef8.tar.gz
riscv-isa-sim-1bcda9195b55d23fe373b23ae38884fd7a4ecef8.tar.bz2
clarify vxcptsave/vxctkill semantics
Diffstat (limited to 'hwacha')
-rw-r--r--hwacha/hwacha.h3
-rw-r--r--hwacha/insns/vxcptkill.h5
-rw-r--r--hwacha/insns/vxcptsave.h2
3 files changed, 7 insertions, 3 deletions
diff --git a/hwacha/hwacha.h b/hwacha/hwacha.h
index 100477c..df0add3 100644
--- a/hwacha/hwacha.h
+++ b/hwacha/hwacha.h
@@ -46,8 +46,9 @@ public:
bool get_debug() { return debug; }
disassembler_t* get_ut_disassembler() { return &ut_disassembler; }
-private:
static const int max_uts = 2048;
+
+private:
ct_state_t ct_state;
ut_state_t ut_state[max_uts];
reg_t cause;
diff --git a/hwacha/insns/vxcptkill.h b/hwacha/insns/vxcptkill.h
index 684a816..08efc12 100644
--- a/hwacha/insns/vxcptkill.h
+++ b/hwacha/insns/vxcptkill.h
@@ -1,3 +1,4 @@
require_supervisor_hwacha;
-for (uint32_t i=0; i<VL; i++)
- h->get_ut_state(i)->run = false;
+h->get_ct_state()->reset();
+for (uint32_t i=0; i<h->max_uts; i++)
+ h->get_ut_state(i)->reset();
diff --git a/hwacha/insns/vxcptsave.h b/hwacha/insns/vxcptsave.h
index 2ff7761..cc663ed 100644
--- a/hwacha/insns/vxcptsave.h
+++ b/hwacha/insns/vxcptsave.h
@@ -40,3 +40,5 @@ for (uint32_t i=0; i<VL; i++) {
#undef STORE_B
#undef STORE_W
#undef STORE_D
+
+#include "insns/vxcptkill.h"