aboutsummaryrefslogtreecommitdiff
path: root/riscv/interactive.cc
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@cs.berkeley.edu>2013-09-11 03:12:11 -0700
committerAndrew Waterman <waterman@cs.berkeley.edu>2013-09-11 03:12:11 -0700
commite07148ac533c318780387b1a27d39e060753cd45 (patch)
tree065f9330d3722dc8e5c7acfc44ca56a6f5934363 /riscv/interactive.cc
parent01dab8dbd6dbad38da740d963975b71bf524c39f (diff)
downloadspike-e07148ac533c318780387b1a27d39e060753cd45.zip
spike-e07148ac533c318780387b1a27d39e060753cd45.tar.gz
spike-e07148ac533c318780387b1a27d39e060753cd45.tar.bz2
Implement zany immediates
Diffstat (limited to 'riscv/interactive.cc')
-rw-r--r--riscv/interactive.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/riscv/interactive.cc b/riscv/interactive.cc
index 33efcfb..a1b7dd0 100644
--- a/riscv/interactive.cc
+++ b/riscv/interactive.cc
@@ -258,12 +258,16 @@ void sim_t::interactive_until(const std::string& cmd, const std::vector<std::str
while (1)
{
- reg_t current = (this->*func)(args2);
+ try
+ {
+ reg_t current = (this->*func)(args2);
- if (cmd_until == (current == val))
- break;
- if (ctrlc_pressed)
- break;
+ if (cmd_until == (current == val))
+ break;
+ if (ctrlc_pressed)
+ break;
+ }
+ catch (trap_t t) {}
step(1, false);
}