diff options
author | Karel Kočí <cynerd@email.cz> | 2017-12-30 18:48:29 +0100 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2017-12-30 18:48:29 +0100 |
commit | 44678108e4c14773b3341e4fbc8042c7cabcf02b (patch) | |
tree | 62cd814cdc15490f48f3a7dd3a853b6e2aaca62b | |
parent | 8ac1f7efc726b87f7f1fa39d7e07d27d063bac93 (diff) | |
download | qtmips-44678108e4c14773b3341e4fbc8042c7cabcf02b.tar.gz qtmips-44678108e4c14773b3341e4fbc8042c7cabcf02b.tar.bz2 qtmips-44678108e4c14773b3341e4fbc8042c7cabcf02b.zip |
Drop jump predictions
Although there are branch likely instruction the whole mips instruction
set is designed around static jump predictions. The usage of delay slot
ensures that we don't have to handle jump predictions on cpu it self at
all. Adding it on top of that makes little to no sense although that was
the original plan.
-rw-r--r-- | qtmips_gui/NewDialog.ui | 44 | ||||
-rw-r--r-- | qtmips_gui/mainwindow.cpp | 3 | ||||
-rw-r--r-- | qtmips_gui/newdialog.cpp | 15 |
3 files changed, 2 insertions, 60 deletions
diff --git a/qtmips_gui/NewDialog.ui b/qtmips_gui/NewDialog.ui index f633d28..c1ec66c 100644 --- a/qtmips_gui/NewDialog.ui +++ b/qtmips_gui/NewDialog.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>558</width> - <height>306</height> + <height>254</height> </rect> </property> <property name="windowTitle"> @@ -132,48 +132,6 @@ </widget> </item> <item> - <widget class="QCheckBox" name="flush_jump"> - <property name="text"> - <string>Flush pipeline on jump</string> - </property> - </widget> - </item> - <item> - <widget class="QGroupBox" name="prediction"> - <property name="title"> - <string>Jump prediction</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>true</bool> - </property> - <property name="checked"> - <bool>false</bool> - </property> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QRadioButton" name="prediction_static"> - <property name="text"> - <string>Static</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QRadioButton" name="prediction_one_dynamic"> - <property name="text"> - <string>One level dynamic</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> diff --git a/qtmips_gui/mainwindow.cpp b/qtmips_gui/mainwindow.cpp index 9e1902a..9384890 100644 --- a/qtmips_gui/mainwindow.cpp +++ b/qtmips_gui/mainwindow.cpp @@ -63,8 +63,7 @@ void MainWindow::create_core(machine::MachineConfig *config) { // Create machine view corescene = new CoreViewScene(coreview, machine); - //machine->set_speed(1000); // Set default speed to 1 sec - machine->set_speed(0); + machine->set_speed(1000); // Set default speed to 1 sec // Connect machine signals and slots connect(ui->actionRun, SIGNAL(triggered(bool)), machine, SLOT(play())); diff --git a/qtmips_gui/newdialog.cpp b/qtmips_gui/newdialog.cpp index 9d0e1ad..062eb2d 100644 --- a/qtmips_gui/newdialog.cpp +++ b/qtmips_gui/newdialog.cpp @@ -18,10 +18,6 @@ NewDialog::NewDialog(QWidget *parent, QSettings *settings) : QDialog(parent) { // Signals on Core tab CUSTOM_PRESET(ui->pipelined); CUSTOM_PRESET(ui->hazard); - CUSTOM_PRESET(ui->flush_jump); - CUSTOM_PRESET(ui->prediction); - CUSTOM_PRESET(ui->prediction_static); - CUSTOM_PRESET(ui->prediction_one_dynamic); // Signals on Memory tab CUSTOM_PRESET(ui->mem_protec_write); CUSTOM_PRESET(ui->mem_protec_exec); @@ -83,9 +79,6 @@ void NewDialog::preset(bool value) { // Core settings ui->pipelined->setChecked(pip); ui->hazard->setChecked(pip); - ui->flush_jump->setChecked(pip); - ui->prediction->setChecked(pip); - ui->prediction_one_dynamic->setChecked(pip); // Memory settings ui->mem_protec_write->setChecked(true); ui->mem_protec_exec->setChecked(true); @@ -116,10 +109,6 @@ void NewDialog::load_settings() { // Core tab LOAD_BUTTON(pipelined, false); LOAD_BUTTON(hazard, false); - LOAD_BUTTON(flush_jump, false); - LOAD_BUTTON(prediction, false); - LOAD_BUTTON(prediction_static, true); - LOAD_BUTTON(prediction_one_dynamic, false); // Memory tab LOAD_BUTTON(mem_protec_write, true); LOAD_BUTTON(mem_protec_exec, true); @@ -137,10 +126,6 @@ void NewDialog::store_settings() { // Core tab STORE_BUTTON(pipelined); STORE_BUTTON(hazard); - STORE_BUTTON(flush_jump); - STORE_BUTTON(prediction); - STORE_BUTTON(prediction_static); - STORE_BUTTON(prediction_one_dynamic); // Memory tab STORE_BUTTON(mem_protec_write); STORE_BUTTON(mem_protec_exec); |