summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2023-06-05 13:17:54 +0200
committerGitHub <noreply@github.com>2023-06-05 13:17:54 +0200
commite3aaf230e69fe80c0a7fdd60f80fa869ee4e7c22 (patch)
tree978dc2fe2765641d2c3717c0f2fed6487844c583
parent252d3f353aa74b06a1c67daa65eb60f786608a6a (diff)
parentc1580ebf30164557af29200fbe4941026681883a (diff)
Merge pull request #11890 from shuffle2/msvc-opt
msvc: workaround optimizer bug
-rw-r--r--Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
index 26848d8d9c..46b246c910 100644
--- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
+++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
@@ -326,7 +326,17 @@ void JitArm64::boolX(UGeckoInstruction inst)
else if ((gpr.IsImm(s) && (gpr.GetImm(s) == 0 || gpr.GetImm(s) == 0xFFFFFFFF)) ||
(gpr.IsImm(b) && (gpr.GetImm(b) == 0 || gpr.GetImm(b) == 0xFFFFFFFF)))
{
- const auto [i, j] = gpr.IsImm(s) ? std::pair(s, b) : std::pair(b, s);
+ int i, j;
+ if (gpr.IsImm(s))
+ {
+ i = s;
+ j = b;
+ }
+ else
+ {
+ i = b;
+ j = s;
+ }
bool is_zero = gpr.GetImm(i) == 0;
bool complement_b = (inst.SUBOP10 == 60 /* andcx */) || (inst.SUBOP10 == 412 /* orcx */);