diff options
| author | Leo Lam <leolino.lam@gmail.com> | 2017-12-08 22:50:40 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-12-08 22:50:40 +0100 |
| commit | 1a9d6b99e95547bd8aadb8b287bbf8ae949ba7a2 (patch) | |
| tree | ac8596a687a3b2a7b408e26ed4998fc6dff92852 /Source/Core/Common/GekkoDisassembler.cpp | |
| parent | be7f212dd09553048ea37ec7cc808921354e31d2 (diff) | |
| parent | de82330a74fb0a593302a3099d0e9bc7a14012a1 (diff) | |
Merge pull request #6237 from lioncash/gekko-disasm
GekkoDisassembler: Correct disassembly of fabs, fnabs, and fneg
Diffstat (limited to 'Source/Core/Common/GekkoDisassembler.cpp')
| -rw-r--r-- | Source/Core/Common/GekkoDisassembler.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/Source/Core/Common/GekkoDisassembler.cpp b/Source/Core/Common/GekkoDisassembler.cpp index 4d90e66d39..3fab6c86b6 100644 --- a/Source/Core/Common/GekkoDisassembler.cpp +++ b/Source/Core/Common/GekkoDisassembler.cpp @@ -907,12 +907,12 @@ void GekkoDisassembler::fdabc(u32 in, const char* name, int mask, unsigned char if (mask & 4) m_operands += StringFromFormat("f%d,", (int)PPCGETA(in)); - else + else if ((mask & 8) == 0) err |= (int)PPCGETA(in); if (mask & 2) m_operands += StringFromFormat("f%d,", (int)PPCGETC(in)); - else if (PPCGETC(in)) + else if (PPCGETC(in) && (mask & 8) == 0) err |= (int)PPCGETC(in); if (mask & 1) @@ -2193,7 +2193,7 @@ u32* GekkoDisassembler::DoDisassembly(bool big_endian) break; case 40: - fdabc(in, "neg", 10, 0); + fdabc(in, "neg", 9, 0); break; case 64: @@ -2221,11 +2221,11 @@ u32* GekkoDisassembler::DoDisassembly(bool big_endian) break; case 136: - fdabc(in, "nabs", 10, 0); + fdabc(in, "nabs", 9, 0); break; case 264: - fdabc(in, "abs", 10, 0); + fdabc(in, "abs", 9, 0); break; case 583: @@ -2249,15 +2249,15 @@ u32* GekkoDisassembler::DoDisassembly(bool big_endian) break; case 814: - fdabc(in, "fctid", 10, PPCF_64); + fdabc(in, "fctid", 9, PPCF_64); break; case 815: - fdabc(in, "fctidz", 10, PPCF_64); + fdabc(in, "fctidz", 9, PPCF_64); break; case 846: - fdabc(in, "fcfid", 10, PPCF_64); + fdabc(in, "fcfid", 9, PPCF_64); break; default: |
