aboutsummaryrefslogtreecommitdiff
path: root/qtmips_gui
diff options
context:
space:
mode:
authorPavel Pisa <pisa@cmp.felk.cvut.cz>2019-03-05 21:25:24 +0100
committerPavel Pisa <pisa@cmp.felk.cvut.cz>2019-03-05 21:25:24 +0100
commit576c4381be6980f95d63ea91f8737dfc22fa8dbe (patch)
tree23fc5f9b613babae0c89e4e726649e12317796dd /qtmips_gui
parent675ede8c34671415bc423e6360ffe0de12d49ec8 (diff)
downloadqtmips-576c4381be6980f95d63ea91f8737dfc22fa8dbe.tar.gz
qtmips-576c4381be6980f95d63ea91f8737dfc22fa8dbe.tar.bz2
qtmips-576c4381be6980f95d63ea91f8737dfc22fa8dbe.zip
Complete revamp of disassembler and assembler arguments processing.
Instructions description in instruction.cpp has been pragmatically augmented by tool based on Python MIPS simulator, hazards analyzer https://github.com/ppisa/apo-simarch That code has been originally distilled from from GNU binutils sources. Implementation is now inline with my original proposal Previous solution gets untenable with more complex instructions and its complexity would grow extremely. MIPS instruction set with coprocessor instructions which use sel field, rd used as index, rt as destination and other peculiarities in newer versions cannot be processed based on basic CPU control signals. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_gui')
-rw-r--r--qtmips_gui/MainWindow.ui2
-rw-r--r--qtmips_gui/programmodel.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/qtmips_gui/MainWindow.ui b/qtmips_gui/MainWindow.ui
index 4847304..338f9d1 100644
--- a/qtmips_gui/MainWindow.ui
+++ b/qtmips_gui/MainWindow.ui
@@ -301,7 +301,7 @@
<string>Cop0 State</string>
</property>
<property name="shortcut">
- <string>Ctrl+C</string>
+ <string>Ctrl+I</string>
</property>
</action>
<action name="actionReload">
diff --git a/qtmips_gui/programmodel.cpp b/qtmips_gui/programmodel.cpp
index 5112bb8..76473a8 100644
--- a/qtmips_gui/programmodel.cpp
+++ b/qtmips_gui/programmodel.cpp
@@ -233,7 +233,7 @@ bool ProgramModel::setData(const QModelIndex & index, const QVariant & value, in
mem->write_word(address, data);
break;
case 3:
- data = machine::Instruction::from_string(value.toString(), &ok).data();
+ data = machine::Instruction::from_string(value.toString(), &ok, address).data();
if (!ok)
return false;
mem->write_word(address, data);