summaryrefslogtreecommitdiff
path: root/gui/worker.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gui/worker.cc')
-rw-r--r--gui/worker.cc24
1 files changed, 8 insertions, 16 deletions
diff --git a/gui/worker.cc b/gui/worker.cc
index dd7b637..a48888c 100644
--- a/gui/worker.cc
+++ b/gui/worker.cc
@@ -78,9 +78,16 @@ void Worker::runSteps(int steps)
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);
@@ -93,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;
-}