display fprs in the registerview as hex, and allow editing of the values

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6287 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Shawn Hoffman 2010-10-19 13:35:25 +00:00
parent 8b49d5ccca
commit 16ff21b0d5
2 changed files with 13 additions and 16 deletions

View File

@ -51,17 +51,17 @@ wxString CRegTable::GetValue(int row, int col)
if (row < 32) { if (row < 32) {
switch (col) { switch (col) {
case 0: return wxString::FromAscii(GetGPRName(row)); case 0: return wxString::FromAscii(GetGPRName(row));
case 1: return wxString::Format(wxT("0x%08x"), GPR(row)); case 1: return wxString::Format(wxT("%08x"), GPR(row));
case 2: return wxString::FromAscii(GetFPRName(row)); case 2: return wxString::FromAscii(GetFPRName(row));
case 3: return wxString::Format(wxT("%f"), rPS0(row)); case 3: return wxString::Format(wxT("%016llx"), riPS0(row));
case 4: return wxString::Format(wxT("%f"), rPS1(row)); case 4: return wxString::Format(wxT("%016llx"), riPS1(row));
default: return wxString::FromAscii(""); default: return wxString::FromAscii("");
} }
} else { } else {
if (row - 32 < NUM_SPECIALS) { if (row - 32 < NUM_SPECIALS) {
switch (col) { switch (col) {
case 0: return wxString::FromAscii(special_reg_names[row - 32]); case 0: return wxString::FromAscii(special_reg_names[row - 32]);
case 1: return wxString::Format(wxT("0x%08x"), GetSpecialRegValue(row - 32)); case 1: return wxString::Format(wxT("%08x"), GetSpecialRegValue(row - 32));
default: return wxString::FromAscii(""); default: return wxString::FromAscii("");
} }
} }
@ -90,18 +90,15 @@ static void SetSpecialRegValue(int reg, u32 value) {
void CRegTable::SetValue(int row, int col, const wxString& strNewVal) void CRegTable::SetValue(int row, int col, const wxString& strNewVal)
{ {
u32 newVal = 0; u32 newVal = 0;
double newValFP = 0.0;
if (TryParseUInt(std::string(strNewVal.mb_str()), &newVal)) if (TryParseUInt(std::string(strNewVal.mb_str()), &newVal))
{ {
if (row < 32) { if (row < 32) {
if (col == 1) if (col == 1)
GPR(row) = newVal; GPR(row) = newVal;
else if (strNewVal.ToDouble(&newValFP)) { else if (col == 3)
if (col == 3) riPS0(row) = newVal;
rPS0(row) = newValFP; else if (col == 4)
else if (col == 4) riPS1(row) = newVal;
rPS1(row) = newValFP;
}
} else { } else {
if ((row - 32 < NUM_SPECIALS) && (col == 1)) { if ((row - 32 < NUM_SPECIALS) && (col == 1)) {
SetSpecialRegValue(row - 32, newVal); SetSpecialRegValue(row - 32, newVal);
@ -117,10 +114,10 @@ void CRegTable::UpdateCachedRegs()
m_CachedRegHasChanged[i] = (m_CachedRegs[i] != GPR(i)); m_CachedRegHasChanged[i] = (m_CachedRegs[i] != GPR(i));
m_CachedRegs[i] = GPR(i); m_CachedRegs[i] = GPR(i);
m_CachedFRegHasChanged[i][0] = (m_CachedFRegs[i][0] != rPS0(i)); m_CachedFRegHasChanged[i][0] = (m_CachedFRegs[i][0] != riPS0(i));
m_CachedFRegs[i][0] = rPS0(i); m_CachedFRegs[i][0] = riPS0(i);
m_CachedFRegHasChanged[i][1] = (m_CachedFRegs[i][1] != rPS1(i)); m_CachedFRegHasChanged[i][1] = (m_CachedFRegs[i][1] != riPS1(i));
m_CachedFRegs[i][1] = rPS1(i); m_CachedFRegs[i][1] = riPS1(i);
} }
for (int i = 0; i < NUM_SPECIALS; ++i) for (int i = 0; i < NUM_SPECIALS; ++i)
{ {

View File

@ -64,7 +64,7 @@ public:
private: private:
u32 m_CachedRegs[32]; u32 m_CachedRegs[32];
u32 m_CachedSpecialRegs[NUM_SPECIALS]; u32 m_CachedSpecialRegs[NUM_SPECIALS];
double m_CachedFRegs[32][2]; u64 m_CachedFRegs[32][2];
bool m_CachedRegHasChanged[32]; bool m_CachedRegHasChanged[32];
bool m_CachedSpecialRegHasChanged[NUM_SPECIALS]; bool m_CachedSpecialRegHasChanged[NUM_SPECIALS];
bool m_CachedFRegHasChanged[32][2]; bool m_CachedFRegHasChanged[32][2];