From 581ab9edecf6bcb85446ba860aac55470772d68d Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sat, 29 Nov 2014 04:21:13 +0000 Subject: [PATCH] [ARM32] cntlzwx optimization if source is immediate --- Source/Core/Core/PowerPC/JitArm32/JitArm_Integer.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/Core/Core/PowerPC/JitArm32/JitArm_Integer.cpp b/Source/Core/Core/PowerPC/JitArm32/JitArm_Integer.cpp index f4157941fa..262c145006 100644 --- a/Source/Core/Core/PowerPC/JitArm32/JitArm_Integer.cpp +++ b/Source/Core/Core/PowerPC/JitArm32/JitArm_Integer.cpp @@ -723,6 +723,14 @@ void JitArm::cntlzwx(UGeckoInstruction inst) JITDISABLE(bJITIntegerOff); u32 a = inst.RA, s = inst.RS; + if (gpr.IsImm(s)) + { + gpr.SetImmediate(a, __builtin_clz(gpr.GetImm(s))); + if (inst.Rc) + ComputeRC(gpr.GetImm(a), 0); + return; + } + gpr.BindToRegister(a, a == s); ARMReg RA = gpr.R(a); ARMReg RS = gpr.R(s);