summaryrefslogtreecommitdiff
path: root/gui/worker.cc
diff options
context:
space:
mode:
authorbd <bdunaisky@umass.edu>2025-04-28 03:44:42 +0000
committerGitHub <noreply@github.com>2025-04-28 03:44:42 +0000
commit013a79547aa465872d0262b2f5c24e73f9556869 (patch)
tree28cc8f2ea6e5aa1a74f328de8594b0ad5995fa66 /gui/worker.cc
parent5653b2a033e7a4173d2f178b5ce52384666d3d7b (diff)
parent336faf3fd701aaf962613abd1ff0a69cbdf021ce (diff)
Merge pull request #69 from bdunahu/vector_ext
Vector ext
Diffstat (limited to 'gui/worker.cc')
-rw-r--r--gui/worker.cc25
1 files changed, 9 insertions, 16 deletions
diff --git a/gui/worker.cc b/gui/worker.cc
index 0ba364b..a48888c 100644
--- a/gui/worker.cc
+++ b/gui/worker.cc
@@ -72,14 +72,22 @@ void Worker::runSteps(int steps)
{
this->ct->run_for(steps);
this->update();
+ emit steps_done();
}
void Worker::update()
{
unsigned long i;
+ std::array<int, GPR_NUM> gprs;
+ std::array<std::array<signed int, V_R_LIMIT>, V_NUM> vrs;
this->ct_mutex.lock();
- emit register_storage(this->ct->get_gprs());
+ gprs = this->ct->get_gprs();
+ vrs = this->ct->get_vrs();
+ std::vector<std::array<signed int, V_R_LIMIT>> v(vrs.begin(), vrs.end());
+
+ emit register_storage(
+ QVector<int>(gprs.begin(), gprs.end()), this->data_to_QT(v));
for (i = 0; i < s.size(); ++i)
emit storage(this->data_to_QT(this->s.at(i)->get_data()), i + 1);
@@ -92,18 +100,3 @@ void Worker::update()
emit wb_info(this->wb_stage->get_instr());
this->ct_mutex.unlock();
}
-
-QVector<QVector<int>>
-Worker::data_to_QT(std::vector<std::array<signed int, LINE_SIZE>> data)
-{
- QVector<QVector<int>> r;
- QVector<int> tmp;
-
- r.reserve(static_cast<int>(data.size()));
-
- for (const auto &line : data) {
- tmp = QVector<int>(line.begin(), line.end());
- r.append(tmp);
- }
- return r;
-}