From 6bcae13ff8603a8a26e7a5e7ad2f9cd09734f4a0 Mon Sep 17 00:00:00 2001 From: Marko Pusljar Date: Sun, 28 Mar 2010 17:10:36 +0000 Subject: DSPLLE - small idleskip improvment for zelda git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5248 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/DSPCore/Src/DSPAnalyzer.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'Source/Core/DSPCore/Src/DSPAnalyzer.cpp') diff --git a/Source/Core/DSPCore/Src/DSPAnalyzer.cpp b/Source/Core/DSPCore/Src/DSPAnalyzer.cpp index 740002ba75..9dc09eba2a 100644 --- a/Source/Core/DSPCore/Src/DSPAnalyzer.cpp +++ b/Source/Core/DSPCore/Src/DSPAnalyzer.cpp @@ -30,7 +30,7 @@ u8 code_flags[ISPACE]; // as well give up its time slice immediately, after executing once. // Max signature length is 6. A 0 in a signature is ignored. -#define NUM_IDLE_SIGS 7 +#define NUM_IDLE_SIGS 8 #define MAX_IDLE_SIG_SIZE 6 // 0xFFFF means ignore. @@ -65,7 +65,12 @@ const u16 idle_skip_sigs[NUM_IDLE_SIGS][MAX_IDLE_SIG_SIZE + 1] = { 0x00de, 0xFFFE, // LR $AC0.M, @CMBH 0x02c0, 0x8000, // ANDCF $AC0.M, #0x8000 0x029c, 0xFFFF, // JLNZ 0x05cf - 0 } + 0 }, + // From Zelda - experimental + { 0x00da, 0x0352, // lr $AX0.H, @0x0352 + 0x8600, // tstaxh $AX0.H + 0x0295, 0xFFFF, // jz 0x???? + 0, 0 } }; void Reset() @@ -121,7 +126,7 @@ void AnalyzeRange(int start_addr, int end_addr) } if (found) { - NOTICE_LOG(DSPLLE, "Idle skip location found at %02x", addr); + NOTICE_LOG(DSPLLE, "Idle skip location found at %02x (sigNum:%d)", addr, s+1); code_flags[addr] |= CODE_IDLE_SKIP; } } -- cgit v1.2.3