diff options
| author | JMC47 <JMC4789@gmail.com> | 2026-01-17 18:21:09 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-17 18:21:09 -0500 |
| commit | a5b34d43fc4ef317550cad7fe3f0ebacf7fc0464 (patch) | |
| tree | c4f7b6ce49edf013d31a94d48476d4f382c7d91c /Source | |
| parent | 9e8e644fbf1c7b24a8eb1195ae95b66391333ffa (diff) | |
| parent | c52dd23c58b8e93a12d6be5c0fe8cc68fc11c026 (diff) | |
Merge pull request #14215 from Tilka/disasm
GekkoDisassembler: fix multiple issues
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Common/GekkoDisassembler.cpp | 54 |
1 files changed, 2 insertions, 52 deletions
diff --git a/Source/Core/Common/GekkoDisassembler.cpp b/Source/Core/Common/GekkoDisassembler.cpp index 18ed219e64..6dc66a8f1e 100644 --- a/Source/Core/Common/GekkoDisassembler.cpp +++ b/Source/Core/Common/GekkoDisassembler.cpp @@ -493,7 +493,7 @@ void GekkoDisassembler::trapi(u32 in, unsigned char dmode) if (cnd != nullptr) { - m_opcode = fmt::format("t{}{}", dmode ? 'd' : 'w', cnd); + m_opcode = fmt::format("t{}{}i", dmode ? 'd' : 'w', cnd); } else { @@ -918,16 +918,6 @@ void GekkoDisassembler::mtb(u32 in) } } -void GekkoDisassembler::sradi(u32 in) -{ - int s = (int)PPCGETD(in); - int a = (int)PPCGETA(in); - int bsh = (int)(((in & 2) << 4) + PPCGETB(in)); - - m_opcode = fmt::format("sradi{}", (in & 1) ? "." : ""); - m_operands = fmt::format("{}, {}, {}", regnames[a], regnames[s], bsh); -} - void GekkoDisassembler::ldst(u32 in, std::string_view name, char reg) { int s = (int)PPCGETD(in); @@ -1094,7 +1084,7 @@ void GekkoDisassembler::ps(u32 inst) case 23: m_opcode = "ps_sel"; - m_operands = fmt::format("p{}>=0?p{}:p{}", FD, FA, FC); + m_operands = fmt::format("p{}, p{}>=0?p{}:p{}", FD, FA, FC, FB); return; case 24: @@ -1443,30 +1433,6 @@ u32* GekkoDisassembler::DoDisassembly(bool big_endian) ori(in, "andis."); break; - case 30: - switch ((in >> 2) & 0x7) - { - case 0: - rld(in, "icl", 0); // rldicl - break; - case 1: - rld(in, "icr", 0); // rldicr - break; - case 2: - rld(in, "ic", 0); // rldic - break; - case 3: - rld(in, "imi", 0); // rldimi - break; - case 4: - rld(in, in & 2 ? "cl" : "cr", 1); // rldcl, rldcr - break; - default: - ill(in); - break; - } - break; - case 31: switch (PPCGETIDX2(in)) { @@ -1813,10 +1779,6 @@ u32* GekkoDisassembler::DoDisassembly(bool big_endian) dab(in, "orc", 7, 1, 0, -1); break; - case 413: - sradi(in); // sradi - break; - case 434: if (in & (PPCDMASK | PPCAMASK)) ill(in); @@ -2291,18 +2253,6 @@ u32* GekkoDisassembler::DoDisassembly(bool big_endian) } break; - case 814: - fdabc(in, "fctid", 9); - break; - - case 815: - fdabc(in, "fctidz", 9); - break; - - case 846: - fdabc(in, "fcfid", 9); - break; - default: ill(in); break; |
