From e740c4caa8c23ada89c92bfd3b5388dd84296960 Mon Sep 17 00:00:00 2001 From: nodchip Date: Sun, 22 Aug 2010 08:38:56 +0000 Subject: [PATCH] JitIL: Omitted extra SUBs when js.downcountAmount == 0. (Though it is not very often.) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6117 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Core/Src/PowerPC/Jit64IL/JitIL.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/Src/PowerPC/Jit64IL/JitIL.cpp b/Source/Core/Core/Src/PowerPC/Jit64IL/JitIL.cpp index 249a31975c..835e204e4a 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64IL/JitIL.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64IL/JitIL.cpp @@ -294,7 +294,8 @@ void JitIL::Cleanup() void JitIL::WriteExit(u32 destination, int exit_num) { Cleanup(); - SUB(32, M(&CoreTiming::downcount), js.downcountAmount > 127 ? Imm32(js.downcountAmount) : Imm8(js.downcountAmount)); + if (js.downcountAmount) + SUB(32, M(&CoreTiming::downcount), js.downcountAmount > 127 ? Imm32(js.downcountAmount) : Imm8(js.downcountAmount)); //If nobody has taken care of this yet (this can be removed when all branches are done) JitBlock *b = js.curBlock; @@ -320,7 +321,8 @@ void JitIL::WriteExitDestInOpArg(const Gen::OpArg& arg, int exit_num) { MOV(32, M(&PC), arg); Cleanup(); - SUB(32, M(&CoreTiming::downcount), js.downcountAmount > 127 ? Imm32(js.downcountAmount) : Imm8(js.downcountAmount)); + if (js.downcountAmount) + SUB(32, M(&CoreTiming::downcount), js.downcountAmount > 127 ? Imm32(js.downcountAmount) : Imm8(js.downcountAmount)); JMP(asm_routines.dispatcher, true); } @@ -328,14 +330,16 @@ void JitIL::WriteRfiExitDestInOpArg(const Gen::OpArg& arg) { MOV(32, M(&PC), arg); Cleanup(); - SUB(32, M(&CoreTiming::downcount), js.downcountAmount > 127 ? Imm32(js.downcountAmount) : Imm8(js.downcountAmount)); + if (js.downcountAmount) + SUB(32, M(&CoreTiming::downcount), js.downcountAmount > 127 ? Imm32(js.downcountAmount) : Imm8(js.downcountAmount)); JMP(asm_routines.testExceptions, true); } void JitIL::WriteExceptionExit() { Cleanup(); - SUB(32, M(&CoreTiming::downcount), js.downcountAmount > 127 ? Imm32(js.downcountAmount) : Imm8(js.downcountAmount)); + if (js.downcountAmount) + SUB(32, M(&CoreTiming::downcount), js.downcountAmount > 127 ? Imm32(js.downcountAmount) : Imm8(js.downcountAmount)); JMP(asm_routines.testExceptions, true); }