summaryrefslogtreecommitdiff
path: root/src/citra_qt/debugger/registers.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/citra_qt/debugger/registers.cpp56
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
13RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) { 13RegistersWidget::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
150void RegistersWidget::CreateVFPSystemRegisterChildren() { 156void RegistersWidget::CreateVFPSystemRegisterChildren() {
@@ -188,9 +194,9 @@ void RegistersWidget::CreateVFPSystemRegisterChildren() {
188} 194}
189 195
190void RegistersWidget::UpdateVFPSystemRegisterValues() { 196void 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}