From c239d3b74ba618c8a3437872fd0a89a8d0fa5796 Mon Sep 17 00:00:00 2001 From: LegendOfDragoon Date: Mon, 22 Aug 2016 13:12:34 -0700 Subject: [PATCH] Optimize ANDI in RSP Recompiler Seems to be use often enough. --- Source/RSP/Recompiler Ops.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/RSP/Recompiler Ops.c b/Source/RSP/Recompiler Ops.c index c5cbda3ef..34166b5dd 100644 --- a/Source/RSP/Recompiler Ops.c +++ b/Source/RSP/Recompiler Ops.c @@ -563,6 +563,9 @@ void Compile_ANDI ( void ) { AndConstToVariable(Immediate, &RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt)); } else if (RSPOpC.rs == 0) { MoveConstToVariable(0, &RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt)); + } else if (Immediate == 0xFFFF) { + MoveZxVariableToX86reg(&RSP_GPR[RSPOpC.rs].UW, GPR_Name(RSPOpC.rs), x86_EAX); + MoveX86regToVariable(x86_EAX, &RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt)); } else { MoveVariableToX86reg(&RSP_GPR[RSPOpC.rs].UW, GPR_Name(RSPOpC.rs), x86_EAX); AndConstToX86Reg(x86_EAX, Immediate);