RSX debugger: fix command count on non-method commands (#8578)

* RSX debugger: fix command count on non-method commands

* fixup

* constants and variables
This commit is contained in:
Eladash 2020-07-12 13:40:47 +03:00 committed by GitHub
parent ab3d36f0f3
commit d6623e0f22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -611,17 +611,14 @@ void rsx_debugger::GetMemory()
if (const u32 ea = rsx::get_current_renderer()->iomap_table.get_addr(addr); if (const u32 ea = rsx::get_current_renderer()->iomap_table.get_addr(addr);
ea + 1) ea + 1)
{ {
u32 cmd = *vm::get_super_ptr<u32>(ea); const u32 cmd = *vm::get_super_ptr<u32>(ea);
u32 count = (cmd >> 18) & 0x7ff; const u32 count = cmd & RSX_METHOD_NON_METHOD_CMD_MASK ? 0 : (cmd >> 18) & 0x7ff;
m_list_commands->setItem(i, 1, new QTableWidgetItem(qstr(fmt::format("%08x", cmd)))); m_list_commands->setItem(i, 1, new QTableWidgetItem(qstr(fmt::format("%08x", cmd))));
m_list_commands->setItem(i, 2, new QTableWidgetItem(DisAsmCommand(cmd, count, addr))); m_list_commands->setItem(i, 2, new QTableWidgetItem(DisAsmCommand(cmd, count, addr)));
m_list_commands->setItem(i, 3, new QTableWidgetItem(QString::number(count))); m_list_commands->setItem(i, 3, new QTableWidgetItem(QString::number(count)));
if(!(cmd & RSX_METHOD_NON_METHOD_CMD_MASK))
{
addr += 4 * count; addr += 4 * count;
} }
}
else else
{ {
m_list_commands->setItem(i, 1, new QTableWidgetItem("????????")); m_list_commands->setItem(i, 1, new QTableWidgetItem("????????"));