summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorBram Speeckaert <bram.speeckaert@gmail.com>2022-11-01 19:05:33 +0100
committerBram Speeckaert <bram.speeckaert@gmail.com>2022-11-01 19:05:33 +0100
commit080513284cf0a80a548de331f8a9729eeb5a49d9 (patch)
tree70b71634884790de637fba708707f14b8363c2dd /Source
parent53a8cd15638af5c80810e083daa3f13f74084144 (diff)
JitArm64: mullwx - Use MultiplyImmediate
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
index ef0253b9e7..a90bf24077 100644
--- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
+++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
@@ -922,6 +922,11 @@ void JitArm64::mullwx(UGeckoInstruction inst)
if (inst.Rc)
ComputeRC0(gpr.GetImm(d));
}
+ else if ((gpr.IsImm(a) && MultiplyImmediate(gpr.GetImm(a), b, d, inst.Rc)) ||
+ (gpr.IsImm(b) && MultiplyImmediate(gpr.GetImm(b), a, d, inst.Rc)))
+ {
+ // Code is generated inside MultiplyImmediate, nothing to be done here.
+ }
else
{
gpr.BindToRegister(d, d == a || d == b);