summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-03-16 10:40:10 +0100
committerGitHub <noreply@github.com>2021-03-16 10:40:10 +0100
commit3fcc018fa7173e80b52758ca81b5d00eef018ac6 (patch)
tree031bb0c7fe8ded8a84d1ca77ee2e7f2860d52d02 /Source/Core
parentf36b1cbb2a5ae9c60c42204b2ecc290496be0e11 (diff)
parentc0f840525fad31c5d8a883613dbe4dc99105ce34 (diff)
Merge pull request #9588 from JosJuice/jitarm64-srawx-a-s
JitArm64: Improve srawx special case carry calculation
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
index 6a4600d67c..04319a49e0 100644
--- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
+++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
@@ -1401,13 +1401,14 @@ void JitArm64::srawx(UGeckoInstruction inst)
{
gpr.BindToRegister(a, a == s);
- ASR(gpr.R(a), gpr.R(s), 31);
-
if (js.op->wantsCA)
{
+ // Set the carry flag to the sign bit of s
CMN(gpr.R(s), gpr.R(s));
ComputeCarry();
}
+
+ ASR(gpr.R(a), gpr.R(s), 31);
}
else if (amount == 0)
{