summaryrefslogtreecommitdiff
path: root/Source/Core/Common/GekkoDisassembler.cpp
diff options
context:
space:
mode:
authorFiora <fioraaeterna@gmail.com>2014-09-28 17:01:35 -0700
committerFiora <fioraaeterna@gmail.com>2014-09-28 17:01:35 -0700
commitc102fed36a60086f2809cd027e8d4b812ace575d (patch)
treeb41e9729d3621edcfaa286c7b1543b80040bbd8c /Source/Core/Common/GekkoDisassembler.cpp
parent431fb4d82a9fa9597df3c35c27e55714ff3e27c0 (diff)
GekkoDisassembler: show W and I in psq_l/psq_st disassembly
Diffstat (limited to 'Source/Core/Common/GekkoDisassembler.cpp')
-rw-r--r--Source/Core/Common/GekkoDisassembler.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/Source/Core/Common/GekkoDisassembler.cpp b/Source/Core/Common/GekkoDisassembler.cpp
index 34da4279e6..15eb21e8bd 100644
--- a/Source/Core/Common/GekkoDisassembler.cpp
+++ b/Source/Core/Common/GekkoDisassembler.cpp
@@ -977,6 +977,11 @@ void GekkoDisassembler::mtfsb(u32 in, int n)
#define TBR ((inst >> 11) & 0x3ff)
#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)
{
@@ -984,12 +989,12 @@ void GekkoDisassembler::ps(u32 inst)
{
case 6:
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;
case 7:
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;
case 18:
@@ -1152,22 +1157,22 @@ void GekkoDisassembler::ps_mem(u32 inst)
{
case 56:
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;
case 57:
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;
case 60:
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;
case 61:
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;
}
}