From ab2dd54aded5f641fd09db8ca734eb95d0dff3e6 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 15 Mar 2014 00:49:18 -0700 Subject: [PATCH] armjit: Skip an AND for rotate shifts. --- Core/MIPS/ARM/ArmCompALU.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Core/MIPS/ARM/ArmCompALU.cpp b/Core/MIPS/ARM/ArmCompALU.cpp index 50a709622c..18e0366ce7 100644 --- a/Core/MIPS/ARM/ArmCompALU.cpp +++ b/Core/MIPS/ARM/ArmCompALU.cpp @@ -488,7 +488,9 @@ namespace MIPSComp return; } gpr.MapDirtyInIn(rd, rs, rt); - AND(R0, gpr.R(rs), Operand2(0x1F)); + // A rotate will be the same even if >= 32. + if (shiftType != ST_ROR) + AND(R0, gpr.R(rs), Operand2(0x1F)); MOV(gpr.R(rd), Operand2(gpr.R(rt), shiftType, R0)); }