diff options
author | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-03 11:52:53 +0100 |
---|---|---|
committer | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-03 11:52:53 +0100 |
commit | 55e1bc746a45118e14554c957b4ee4663039d9af (patch) | |
tree | af416cb8dd60f47f47b6d9b943a53fe069543cdb /qtmips_machine/qtmipsmachine.cpp | |
parent | 53c75d278a958e40b9c0b0ca3b04cfb11f356827 (diff) | |
download | qtmips-55e1bc746a45118e14554c957b4ee4663039d9af.tar.gz qtmips-55e1bc746a45118e14554c957b4ee4663039d9af.tar.bz2 qtmips-55e1bc746a45118e14554c957b4ee4663039d9af.zip |
Implement BREAK instruction to stop continuous execution.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_machine/qtmipsmachine.cpp')
-rw-r--r-- | qtmips_machine/qtmipsmachine.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/qtmips_machine/qtmipsmachine.cpp b/qtmips_machine/qtmipsmachine.cpp index da4516a..75d8b8e 100644 --- a/qtmips_machine/qtmipsmachine.cpp +++ b/qtmips_machine/qtmipsmachine.cpp @@ -81,7 +81,8 @@ void QtMipsMachine::play() { } void QtMipsMachine::pause() { - CTL_GUARD; + if (stat != ST_BUSY) + CTL_GUARD; set_status(ST_READY); run_t->stop(); } @@ -103,8 +104,10 @@ void QtMipsMachine::step() { run_t->stop(); set_status(ST_EXIT); emit program_exit(); - } else - set_status(stat_prev); + } else { + if (stat == ST_BUSY) + set_status(stat_prev); + } } void QtMipsMachine::restart() { |