summaryrefslogtreecommitdiff
path: root/Source/Core/Common/GekkoDisassembler.cpp
diff options
context:
space:
mode:
authorLeo Lam <leolino.lam@gmail.com>2017-12-08 22:50:40 +0100
committerGitHub <noreply@github.com>2017-12-08 22:50:40 +0100
commit1a9d6b99e95547bd8aadb8b287bbf8ae949ba7a2 (patch)
treeac8596a687a3b2a7b408e26ed4998fc6dff92852 /Source/Core/Common/GekkoDisassembler.cpp
parentbe7f212dd09553048ea37ec7cc808921354e31d2 (diff)
parentde82330a74fb0a593302a3099d0e9bc7a14012a1 (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.cpp16
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: