Merge pull request #1181 from FioraAeterna/debuggqr

GekkoDisassembler: show W and I in psq_l/psq_st disassembly
This commit is contained in:
Lioncash 2014-09-28 23:45:49 -04:00
commit d13383c4e6

View File

@ -977,6 +977,11 @@ void GekkoDisassembler::mtfsb(u32 in, int n)
#define TBR ((inst >> 11) & 0x3ff) #define TBR ((inst >> 11) & 0x3ff)
#define CRM ((inst >> 12) & 0xff) #define CRM ((inst >> 12) & 0xff)
#define I ((inst >> 12) & 0x7)
#define W ((inst >> 15) & 0x1)
#define IX ((inst >> 7) & 0x7)
#define WX ((inst >> 10) & 0x1)
void GekkoDisassembler::ps(u32 inst) void GekkoDisassembler::ps(u32 inst)
{ {
@ -984,12 +989,12 @@ void GekkoDisassembler::ps(u32 inst)
{ {
case 6: case 6:
m_opcode = inst & 0x40 ? "psq_lux" : "psq_lx"; m_opcode = inst & 0x40 ? "psq_lux" : "psq_lx";
m_operands = StringFromFormat("p%u, (r%u + r%u)", FD, RA, RB); m_operands = StringFromFormat("p%u, (r%u + r%u), %d, qr%d", FD, RA, RB, WX, IX);
return; return;
case 7: case 7:
m_opcode = inst & 0x40 ? "psq_stux" : "psq_stx"; m_opcode = inst & 0x40 ? "psq_stux" : "psq_stx";
m_operands = StringFromFormat("(r%u + r%u), p%u", RA, RB, FS); m_operands = StringFromFormat("(r%u + r%u), p%u, %d, qr%d", RA, RB, FS, WX, IX);
return; return;
case 18: case 18:
@ -1152,22 +1157,22 @@ void GekkoDisassembler::ps_mem(u32 inst)
{ {
case 56: case 56:
m_opcode = "psq_l"; m_opcode = "psq_l";
m_operands = StringFromFormat("p%u, %i(r%u)", RS, SEX12(inst & 0xFFF), RA); m_operands = StringFromFormat("p%u, %i(r%u), %d, qr%d", RS, SEX12(inst & 0xFFF), RA, W, I);
break; break;
case 57: case 57:
m_opcode = "psq_lu"; m_opcode = "psq_lu";
m_operands = StringFromFormat("p%u, %i(r%u)", RS, SEX12(inst & 0xFFF), RA);; m_operands = StringFromFormat("p%u, %i(r%u), %d, qr%d", RS, SEX12(inst & 0xFFF), RA, W, I);;
break; break;
case 60: case 60:
m_opcode = "psq_st"; m_opcode = "psq_st";
m_operands = StringFromFormat("%i(r%u), p%u", SEX12(inst & 0xFFF), RA, RS); m_operands = StringFromFormat("%i(r%u), p%u, %d, qr%d", SEX12(inst & 0xFFF), RA, RS, W, I);
break; break;
case 61: case 61:
m_opcode = "psq_stu"; m_opcode = "psq_stu";
m_operands = StringFromFormat("%i(r%u), p%u", SEX12(inst & 0xFFF), RA, RS); m_operands = StringFromFormat("%i(r%u), p%u, %d, qr%d", SEX12(inst & 0xFFF), RA, RS, W, I);
break; break;
} }
} }