From 48fcced3bc51fcb6fa1ba8637199989bbcbcfe7e Mon Sep 17 00:00:00 2001 From: LegendOfDragoon Date: Mon, 7 Sep 2015 12:18:28 -0700 Subject: [PATCH] Optimize ADDIU in RSP Recompiler The second part happens in Hydro Thunder LLE audio. --- Source/RSP/Recompiler Ops.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/RSP/Recompiler Ops.c b/Source/RSP/Recompiler Ops.c index b46b1a3e4..5b17818da 100644 --- a/Source/RSP/Recompiler Ops.c +++ b/Source/RSP/Recompiler Ops.c @@ -472,12 +472,16 @@ void Compile_ADDIU ( void ) { if (RSPOpC.rt == 0) return; if (RSPOpC.rt == RSPOpC.rs) { - AddConstToVariable(Immediate, &RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt)); + if(Immediate != 0) { + AddConstToVariable(Immediate, &RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt)); + } } else if (RSPOpC.rs == 0) { MoveConstToVariable(Immediate, &RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt)); } else { MoveVariableToX86reg(&RSP_GPR[RSPOpC.rs].UW, GPR_Name(RSPOpC.rs), x86_EAX); - AddConstToX86Reg(x86_EAX, Immediate); + if(Immediate != 0) { + AddConstToX86Reg(x86_EAX, Immediate); + } MoveX86regToVariable(x86_EAX, &RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt)); } }