summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
Diffstat (limited to 'gui')
-rw-r--r--gui/gui.cc59
-rw-r--r--gui/gui.h10
-rw-r--r--gui/worker.cc10
-rw-r--r--gui/worker.h10
4 files changed, 44 insertions, 45 deletions
diff --git a/gui/gui.cc b/gui/gui.cc
index 496a443..bf9e6cf 100644
--- a/gui/gui.cc
+++ b/gui/gui.cc
@@ -169,36 +169,36 @@ void GUI::on_worker_refresh_gui(int cycles, int pc)
ui->cycle_counter->set_value(cycles);
}
-void GUI::onWorkerFetchInfo(const std::vector<int> info)
+void GUI::onWorkerFetchInfo(const InstrDTO *i)
{
- if (!info.empty()) {
- ui->fetch_squashed->setText(QString::number(info[0]));
- ui->fetch_bits->set_value(info[1]);
+ if (i) {
+ ui->fetch_squashed->setText(QString::number(i->is_squashed));
+ ui->fetch_bits->set_value(i->slot_A);
} else {
ui->fetch_squashed->clear();
ui->fetch_bits->clear();
}
}
-void GUI::onWorkerDecodeInfo(const std::vector<int> info)
+void GUI::onWorkerDecodeInfo(const InstrDTO *i)
{
- if (!info.empty()) {
- ui->decode_squashed->setText(QString::number(info[0]));
- ui->decode_bits->set_value(info[1]);
+ if (i) {
+ ui->decode_squashed->setText(QString::number(i->is_squashed));
+ ui->decode_bits->set_value(i->slot_A);
} else {
ui->decode_squashed->clear();
ui->decode_bits->clear();
}
}
-void GUI::onWorkerExecuteInfo(const std::vector<int> info)
+void GUI::onWorkerExecuteInfo(const InstrDTO *i)
{
- if (!info.empty()) {
- ui->execute_mnemonic->setText(mnemonicToString((Mnemonic)info[0]));
- ui->execute_squashed->setText(QString::number(info[1]));
- ui->execute_s1->set_value(info[2]);
- ui->execute_s2->set_value(info[3]);
- ui->execute_s3->set_value(info[4]);
+ if (i) {
+ ui->execute_mnemonic->setText(mnemonicToString(i->mnemonic));
+ ui->execute_squashed->setText(QString::number(i->is_squashed));
+ ui->execute_s1->set_value(i->operands.integer.slot_one);
+ ui->execute_s2->set_value(i->operands.integer.slot_two);
+ ui->execute_s3->set_value(i->operands.integer.slot_three);
} else {
ui->execute_mnemonic->clear();
ui->execute_squashed->clear();
@@ -208,15 +208,14 @@ void GUI::onWorkerExecuteInfo(const std::vector<int> info)
}
}
-void GUI::onWorkerMemoryInfo(const std::vector<int> info)
+void GUI::onWorkerMemoryInfo(const InstrDTO *i)
{
- if (!info.empty()) {
- std::cout << "this " << info[3] << std::endl;
- ui->memory_mnemonic->setText(mnemonicToString((Mnemonic)info[0]));
- ui->memory_squashed->setText(QString::number(info[1]));
- ui->memory_s1->set_value(info[2]);
- ui->memory_s2->set_value(info[3]);
- ui->memory_s3->set_value(info[4]);
+ if (i) {
+ ui->memory_mnemonic->setText(mnemonicToString(i->mnemonic));
+ ui->memory_squashed->setText(QString::number(i->is_squashed));
+ ui->memory_s1->set_value(i->operands.integer.slot_one);
+ ui->memory_s2->set_value(i->operands.integer.slot_two);
+ ui->memory_s3->set_value(i->operands.integer.slot_three);
} else {
ui->memory_mnemonic->clear();
ui->memory_squashed->clear();
@@ -226,14 +225,14 @@ void GUI::onWorkerMemoryInfo(const std::vector<int> info)
}
}
-void GUI::onWorkerWriteBackInfo(const std::vector<int> info)
+void GUI::onWorkerWriteBackInfo(const InstrDTO *i)
{
- if (!info.empty()) {
- ui->write_mnemonic->setText(mnemonicToString((Mnemonic)info[0]));
- ui->write_squashed->setText(QString::number(info[1]));
- ui->write_s1->set_value(info[2]);
- ui->write_s2->set_value(info[3]);
- ui->write_s3->set_value(info[4]);
+ if (i) {
+ ui->write_mnemonic->setText(mnemonicToString(i->mnemonic));
+ ui->write_squashed->setText(QString::number(i->is_squashed));
+ ui->write_s1->set_value(i->operands.integer.slot_one);
+ ui->write_s2->set_value(i->operands.integer.slot_two);
+ ui->write_s3->set_value(i->operands.integer.slot_three);
} else {
ui->write_mnemonic->clear();
ui->write_squashed->clear();
diff --git a/gui/gui.h b/gui/gui.h
index 7b03f75..b3a3110 100644
--- a/gui/gui.h
+++ b/gui/gui.h
@@ -57,15 +57,15 @@ class GUI : public QMainWindow
private slots:
void on_worker_refresh_gui(int value, int pc);
- void onWorkerFetchInfo(const std::vector<int> info);
+ void onWorkerFetchInfo(const InstrDTO *);
- void onWorkerDecodeInfo(const std::vector<int> info);
+ void onWorkerDecodeInfo(const InstrDTO *);
- void onWorkerExecuteInfo(const std::vector<int> info);
+ void onWorkerExecuteInfo(const InstrDTO *);
- void onWorkerMemoryInfo(const std::vector<int> info);
+ void onWorkerMemoryInfo(const InstrDTO *);
- void onWorkerWriteBackInfo(const std::vector<int> info);
+ void onWorkerWriteBackInfo(const InstrDTO *);
void onWorkerShowStorage(
const std::vector<std::array<signed int, LINE_SIZE>> data, int i);
diff --git a/gui/worker.cc b/gui/worker.cc
index 2652fce..203f907 100644
--- a/gui/worker.cc
+++ b/gui/worker.cc
@@ -89,10 +89,10 @@ void Worker::runSteps(int steps)
emit storage(this->s.at(i - 1)->view(0, 1 << this->size_inc * i), i + 1);
emit clock_cycles(this->ct->get_clock_cycle(), this->ct->get_pc());
- emit if_info(this->if_stage->stage_info());
- emit id_info(this->id_stage->stage_info());
- emit ex_info(this->ex_stage->stage_info());
- emit mm_info(this->mm_stage->stage_info());
- emit wb_info(this->wb_stage->stage_info());
+ emit if_info(this->if_stage->get_instr());
+ emit id_info(this->id_stage->get_instr());
+ emit ex_info(this->ex_stage->get_instr());
+ emit mm_info(this->mm_stage->get_instr());
+ emit wb_info(this->wb_stage->get_instr());
this->ct_mutex.unlock();
}
diff --git a/gui/worker.h b/gui/worker.h
index 95c81d5..072263a 100644
--- a/gui/worker.h
+++ b/gui/worker.h
@@ -72,11 +72,11 @@ class Worker : public QObject
void
storage(const std::vector<std::array<signed int, LINE_SIZE>> data, int i);
void register_storage(const std::array<int, GPR_NUM> data);
- void if_info(const std::vector<int> info);
- void id_info(const std::vector<int> info);
- void ex_info(const std::vector<int> info);
- void mm_info(const std::vector<int> info);
- void wb_info(const std::vector<int> info);
+ void if_info(const InstrDTO *);
+ void id_info(const InstrDTO *);
+ void ex_info(const InstrDTO *);
+ void mm_info(const InstrDTO *);
+ void wb_info(const InstrDTO *);
void finished();
};