From 56c4eea4c1773ee14f46238c124e918534fd6bca Mon Sep 17 00:00:00 2001 From: nakeee Date: Thu, 20 Aug 2009 07:01:04 +0000 Subject: [PATCH] DSPLLE: trying to optimize a bit (based on drkrazi's suggestion) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4019 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/DSPCore/Src/DSPIntExtOps.cpp | 25 ++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/Source/Core/DSPCore/Src/DSPIntExtOps.cpp b/Source/Core/DSPCore/Src/DSPIntExtOps.cpp index 37e803bdb3..124869ca8e 100644 --- a/Source/Core/DSPCore/Src/DSPIntExtOps.cpp +++ b/Source/Core/DSPCore/Src/DSPIntExtOps.cpp @@ -378,21 +378,22 @@ void nop(const UDSPInstruction& opc) } // end namespace ext } // end namespace DSPInterpeter -void applyWriteBackLog() +void applyWriteBackLog() { - for (int i=0;i < WRITEBACKLOGSIZE;i++) { - - if (writeBackLogIdx[i] != -1) { - dsp_op_write_reg(writeBackLogIdx[i], g_dsp.r[writeBackLogIdx[i]] | writeBackLog[i]); - // Clear back log - writeBackLogIdx[i] = -1; - } + //always make sure to have an extra entry at the end w/ -1 to avoid + //infinitive loops + for (int i=0;writeBackLogIdx[i]!=-1;i++) { + dsp_op_write_reg(writeBackLogIdx[i], g_dsp.r[writeBackLogIdx[i]] | writeBackLog[i]); + // Clear back log + writeBackLogIdx[i] = -1; } -} +} void zeroWriteBackLog() { - for (int i=0;i < WRITEBACKLOGSIZE;i++) - if (writeBackLogIdx[i] != -1) - dsp_op_write_reg(writeBackLogIdx[i], 0); + //always make sure to have an extra entry at the end w/ -1 to avoid + //infinitive loops + for (int i=0;writeBackLogIdx[i]!=-1;i++) + dsp_op_write_reg(writeBackLogIdx[i], 0); } +