diff options
Diffstat (limited to 'qtmips_gui')
| -rw-r--r-- | qtmips_gui/registersdock.cpp | 63 | ||||
| -rw-r--r-- | qtmips_gui/registersdock.h | 2 | 
2 files changed, 49 insertions, 16 deletions
| diff --git a/qtmips_gui/registersdock.cpp b/qtmips_gui/registersdock.cpp index 8250321..809b692 100644 --- a/qtmips_gui/registersdock.cpp +++ b/qtmips_gui/registersdock.cpp @@ -1,5 +1,40 @@  #include "registersdock.h" +static const QString labels[] = { +    "zero", +    "at", +    "v0", +    "v1", +    "a0", +    "a1", +    "a2", +    "a3", +    "t0", +    "t1", +    "t2", +    "t3", +    "t4", +    "t5", +    "t6", +    "t7", +    "s0", +    "s1", +    "s2", +    "s3", +    "s4", +    "s5", +    "s6", +    "s7", +    "t8", +    "t9", +    "k0", +    "k1", +    "gp", +    "sp", +    "fp", +    "ra" +}; +  RegistersDock::RegistersDock(QWidget *parent) : QDockWidget(parent) {      scrollarea = new QScrollArea(this);      widg = new QWidget(scrollarea); @@ -12,11 +47,11 @@ RegistersDock::RegistersDock(QWidget *parent) : QDockWidget(parent) {          layout->addRow(LABEL, X); \      } while(false) -    INIT(pc, "PC:"); +    INIT(pc, "pc:");      for (int i = 0; i < 32; i++) -        INIT(gp[i], QString("GP") + QString::number(i) + QString(" ($") + QString::number(i) + QString("):")); -    INIT(lo, "LO:"); -    INIT(hi, "HI:"); +        INIT(gp[i], QString("$") + QString::number(i) + QString("/") + labels[i] + QString(":")); +    INIT(lo, "lo:"); +    INIT(hi, "hi:");  #undef INIT      widg->setLayout(layout);      scrollarea->setWidget(widg); @@ -53,32 +88,30 @@ void RegistersDock::setup(machine::QtMipsMachine *machine) {      connect(regs, SIGNAL(hi_lo_update(bool,std::uint32_t)), this, SLOT(hi_lo_changed(bool,std::uint32_t)));      // Load values -    labelVal(pc, regs->read_pc(), false); -    labelVal(hi, regs->read_hi_lo(true), true); -    labelVal(lo, regs->read_hi_lo(false), true); +    labelVal(pc, regs->read_pc()); +    labelVal(hi, regs->read_hi_lo(true)); +    labelVal(lo, regs->read_hi_lo(false));      for (int i = 0; i < 32; i++) -        labelVal(gp[i], regs->read_gp(i), true); +        labelVal(gp[i], regs->read_gp(i));  }  void RegistersDock::pc_changed(std::uint32_t val) { -    labelVal(pc, val, false); +    labelVal(pc, val);  }  void RegistersDock::gp_changed(std::uint8_t i, std::uint32_t val) {      SANITY_ASSERT(i < 32, QString("RegistersDock received signal with invalid gp register: ") + QString::number(i)); -    labelVal(gp[i], val, true); +    labelVal(gp[i], val);  }  void RegistersDock::hi_lo_changed(bool hi, std::uint32_t val) {      if (hi) -        labelVal(this->hi, val, true); +        labelVal(this->hi, val);      else -        labelVal(lo, val, true); +        labelVal(lo, val);  } -void RegistersDock::labelVal(QLabel *label, std::uint32_t value, bool dec) { +void RegistersDock::labelVal(QLabel *label, std::uint32_t value) {      QString t = QString("0x") + QString::number(value, 16); -    if (dec) -        t += QString(" (") + QString::number(value) + QString(")");      label->setText(t);  } diff --git a/qtmips_gui/registersdock.h b/qtmips_gui/registersdock.h index 8e1de78..94f4670 100644 --- a/qtmips_gui/registersdock.h +++ b/qtmips_gui/registersdock.h @@ -31,7 +31,7 @@ private:      QLabel *lo;      QLabel *gp[32]; -    void labelVal(QLabel *label, std::uint32_t val, bool dec); +    void labelVal(QLabel *label, std::uint32_t val);  };  #endif // REGISTERSDOCK_H | 
