diff options
author | bd <bdunaisky@umass.edu> | 2025-04-28 03:44:42 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-28 03:44:42 +0000 |
commit | 013a79547aa465872d0262b2f5c24e73f9556869 (patch) | |
tree | 28cc8f2ea6e5aa1a74f328de8594b0ad5995fa66 /gui/worker.cc | |
parent | 5653b2a033e7a4173d2f178b5ce52384666d3d7b (diff) | |
parent | 336faf3fd701aaf962613abd1ff0a69cbdf021ce (diff) |
Merge pull request #69 from bdunahu/vector_ext
Vector ext
Diffstat (limited to 'gui/worker.cc')
-rw-r--r-- | gui/worker.cc | 25 |
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; -} |