diff options
Diffstat (limited to 'src/citra_qt/debugger/registers.cpp')
| -rw-r--r-- | src/citra_qt/debugger/registers.cpp | 56 |
1 files changed, 32 insertions, 24 deletions
diff --git a/src/citra_qt/debugger/registers.cpp b/src/citra_qt/debugger/registers.cpp index 1bd0bfebc..82da0022f 100644 --- a/src/citra_qt/debugger/registers.cpp +++ b/src/citra_qt/debugger/registers.cpp | |||
| @@ -7,8 +7,8 @@ | |||
| 7 | #include "citra_qt/debugger/registers.h" | 7 | #include "citra_qt/debugger/registers.h" |
| 8 | #include "citra_qt/util/util.h" | 8 | #include "citra_qt/util/util.h" |
| 9 | 9 | ||
| 10 | #include "core/core.h" | ||
| 11 | #include "core/arm/arm_interface.h" | 10 | #include "core/arm/arm_interface.h" |
| 11 | #include "core/core.h" | ||
| 12 | 12 | ||
| 13 | RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) { | 13 | RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) { |
| 14 | cpu_regs_ui.setupUi(this); | 14 | cpu_regs_ui.setupUi(this); |
| @@ -16,7 +16,8 @@ RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) { | |||
| 16 | tree = cpu_regs_ui.treeWidget; | 16 | tree = cpu_regs_ui.treeWidget; |
| 17 | tree->addTopLevelItem(core_registers = new QTreeWidgetItem(QStringList(tr("Registers")))); | 17 | tree->addTopLevelItem(core_registers = new QTreeWidgetItem(QStringList(tr("Registers")))); |
| 18 | tree->addTopLevelItem(vfp_registers = new QTreeWidgetItem(QStringList(tr("VFP Registers")))); | 18 | tree->addTopLevelItem(vfp_registers = new QTreeWidgetItem(QStringList(tr("VFP Registers")))); |
| 19 | tree->addTopLevelItem(vfp_system_registers = new QTreeWidgetItem(QStringList(tr("VFP System Registers")))); | 19 | tree->addTopLevelItem(vfp_system_registers = |
| 20 | new QTreeWidgetItem(QStringList(tr("VFP System Registers")))); | ||
| 20 | tree->addTopLevelItem(cpsr = new QTreeWidgetItem(QStringList("CPSR"))); | 21 | tree->addTopLevelItem(cpsr = new QTreeWidgetItem(QStringList("CPSR"))); |
| 21 | 22 | ||
| 22 | for (int i = 0; i < 16; ++i) { | 23 | for (int i = 0; i < 16; ++i) { |
| @@ -63,10 +64,12 @@ void RegistersWidget::OnDebugModeEntered() { | |||
| 63 | return; | 64 | return; |
| 64 | 65 | ||
| 65 | for (int i = 0; i < core_registers->childCount(); ++i) | 66 | for (int i = 0; i < core_registers->childCount(); ++i) |
| 66 | core_registers->child(i)->setText(1, QString("0x%1").arg(Core::g_app_core->GetReg(i), 8, 16, QLatin1Char('0'))); | 67 | core_registers->child(i)->setText( |
| 68 | 1, QString("0x%1").arg(Core::g_app_core->GetReg(i), 8, 16, QLatin1Char('0'))); | ||
| 67 | 69 | ||
| 68 | for (int i = 0; i < vfp_registers->childCount(); ++i) | 70 | for (int i = 0; i < vfp_registers->childCount(); ++i) |
| 69 | vfp_registers->child(i)->setText(1, QString("0x%1").arg(Core::g_app_core->GetVFPReg(i), 8, 16, QLatin1Char('0'))); | 71 | vfp_registers->child(i)->setText( |
| 72 | 1, QString("0x%1").arg(Core::g_app_core->GetVFPReg(i), 8, 16, QLatin1Char('0'))); | ||
| 70 | 73 | ||
| 71 | UpdateCPSRValues(); | 74 | UpdateCPSRValues(); |
| 72 | UpdateVFPSystemRegisterValues(); | 75 | UpdateVFPSystemRegisterValues(); |
| @@ -130,21 +133,24 @@ void RegistersWidget::UpdateCPSRValues() { | |||
| 130 | const u32 cpsr_val = Core::g_app_core->GetCPSR(); | 133 | const u32 cpsr_val = Core::g_app_core->GetCPSR(); |
| 131 | 134 | ||
| 132 | cpsr->setText(1, QString("0x%1").arg(cpsr_val, 8, 16, QLatin1Char('0'))); | 135 | cpsr->setText(1, QString("0x%1").arg(cpsr_val, 8, 16, QLatin1Char('0'))); |
| 133 | cpsr->child(0)->setText(1, QString("b%1").arg(cpsr_val & 0x1F, 5, 2, QLatin1Char('0'))); // M - Mode | 136 | cpsr->child(0)->setText( |
| 134 | cpsr->child(1)->setText(1, QString::number((cpsr_val >> 5) & 1)); // T - State | 137 | 1, QString("b%1").arg(cpsr_val & 0x1F, 5, 2, QLatin1Char('0'))); // M - Mode |
| 135 | cpsr->child(2)->setText(1, QString::number((cpsr_val >> 6) & 1)); // F - FIQ disable | 138 | cpsr->child(1)->setText(1, QString::number((cpsr_val >> 5) & 1)); // T - State |
| 136 | cpsr->child(3)->setText(1, QString::number((cpsr_val >> 7) & 1)); // I - IRQ disable | 139 | cpsr->child(2)->setText(1, QString::number((cpsr_val >> 6) & 1)); // F - FIQ disable |
| 137 | cpsr->child(4)->setText(1, QString::number((cpsr_val >> 8) & 1)); // A - Imprecise abort | 140 | cpsr->child(3)->setText(1, QString::number((cpsr_val >> 7) & 1)); // I - IRQ disable |
| 138 | cpsr->child(5)->setText(1, QString::number((cpsr_val >> 9) & 1)); // E - Data endianess | 141 | cpsr->child(4)->setText(1, QString::number((cpsr_val >> 8) & 1)); // A - Imprecise abort |
| 139 | cpsr->child(6)->setText(1, QString::number((cpsr_val >> 10) & 0x3F)); // IT - If-Then state (DNM) | 142 | cpsr->child(5)->setText(1, QString::number((cpsr_val >> 9) & 1)); // E - Data endianess |
| 140 | cpsr->child(7)->setText(1, QString::number((cpsr_val >> 16) & 0xF)); // GE - Greater-than-or-Equal | 143 | cpsr->child(6)->setText(1, |
| 141 | cpsr->child(8)->setText(1, QString::number((cpsr_val >> 20) & 0xF)); // DNM - Do not modify | 144 | QString::number((cpsr_val >> 10) & 0x3F)); // IT - If-Then state (DNM) |
| 142 | cpsr->child(9)->setText(1, QString::number((cpsr_val >> 24) & 1)); // J - Jazelle | 145 | cpsr->child(7)->setText(1, |
| 143 | cpsr->child(10)->setText(1, QString::number((cpsr_val >> 27) & 1)); // Q - Saturation | 146 | QString::number((cpsr_val >> 16) & 0xF)); // GE - Greater-than-or-Equal |
| 144 | cpsr->child(11)->setText(1, QString::number((cpsr_val >> 28) & 1)); // V - Overflow | 147 | cpsr->child(8)->setText(1, QString::number((cpsr_val >> 20) & 0xF)); // DNM - Do not modify |
| 145 | cpsr->child(12)->setText(1, QString::number((cpsr_val >> 29) & 1)); // C - Carry/Borrow/Extend | 148 | cpsr->child(9)->setText(1, QString::number((cpsr_val >> 24) & 1)); // J - Jazelle |
| 146 | cpsr->child(13)->setText(1, QString::number((cpsr_val >> 30) & 1)); // Z - Zero | 149 | cpsr->child(10)->setText(1, QString::number((cpsr_val >> 27) & 1)); // Q - Saturation |
| 147 | cpsr->child(14)->setText(1, QString::number((cpsr_val >> 31) & 1)); // N - Negative/Less than | 150 | cpsr->child(11)->setText(1, QString::number((cpsr_val >> 28) & 1)); // V - Overflow |
| 151 | cpsr->child(12)->setText(1, QString::number((cpsr_val >> 29) & 1)); // C - Carry/Borrow/Extend | ||
| 152 | cpsr->child(13)->setText(1, QString::number((cpsr_val >> 30) & 1)); // Z - Zero | ||
| 153 | cpsr->child(14)->setText(1, QString::number((cpsr_val >> 31) & 1)); // N - Negative/Less than | ||
| 148 | } | 154 | } |
| 149 | 155 | ||
| 150 | void RegistersWidget::CreateVFPSystemRegisterChildren() { | 156 | void RegistersWidget::CreateVFPSystemRegisterChildren() { |
| @@ -188,9 +194,9 @@ void RegistersWidget::CreateVFPSystemRegisterChildren() { | |||
| 188 | } | 194 | } |
| 189 | 195 | ||
| 190 | void RegistersWidget::UpdateVFPSystemRegisterValues() { | 196 | void RegistersWidget::UpdateVFPSystemRegisterValues() { |
| 191 | const u32 fpscr_val = Core::g_app_core->GetVFPSystemReg(VFP_FPSCR); | 197 | const u32 fpscr_val = Core::g_app_core->GetVFPSystemReg(VFP_FPSCR); |
| 192 | const u32 fpexc_val = Core::g_app_core->GetVFPSystemReg(VFP_FPEXC); | 198 | const u32 fpexc_val = Core::g_app_core->GetVFPSystemReg(VFP_FPEXC); |
| 193 | const u32 fpinst_val = Core::g_app_core->GetVFPSystemReg(VFP_FPINST); | 199 | const u32 fpinst_val = Core::g_app_core->GetVFPSystemReg(VFP_FPINST); |
| 194 | const u32 fpinst2_val = Core::g_app_core->GetVFPSystemReg(VFP_FPINST2); | 200 | const u32 fpinst2_val = Core::g_app_core->GetVFPSystemReg(VFP_FPINST2); |
| 195 | 201 | ||
| 196 | QTreeWidgetItem* const fpscr = vfp_system_registers->child(0); | 202 | QTreeWidgetItem* const fpscr = vfp_system_registers->child(0); |
| @@ -228,6 +234,8 @@ void RegistersWidget::UpdateVFPSystemRegisterValues() { | |||
| 228 | fpexc->child(6)->setText(1, QString::number((fpexc_val >> 30) & 1)); | 234 | fpexc->child(6)->setText(1, QString::number((fpexc_val >> 30) & 1)); |
| 229 | fpexc->child(7)->setText(1, QString::number((fpexc_val >> 31) & 1)); | 235 | fpexc->child(7)->setText(1, QString::number((fpexc_val >> 31) & 1)); |
| 230 | 236 | ||
| 231 | vfp_system_registers->child(2)->setText(1, QString("0x%1").arg(fpinst_val, 8, 16, QLatin1Char('0'))); | 237 | vfp_system_registers->child(2)->setText( |
| 232 | vfp_system_registers->child(3)->setText(1, QString("0x%1").arg(fpinst2_val, 8, 16, QLatin1Char('0'))); | 238 | 1, QString("0x%1").arg(fpinst_val, 8, 16, QLatin1Char('0'))); |
| 239 | vfp_system_registers->child(3)->setText( | ||
| 240 | 1, QString("0x%1").arg(fpinst2_val, 8, 16, QLatin1Char('0'))); | ||
| 233 | } | 241 | } |