LLE JIT: The block linker will now recompile all blocks that it encounters immediately. Gives a speed boost in some games. Also removed an extraneous check for external exceptions.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6801 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
a92fd2b4a1
commit
f49efa8868
|
@ -174,10 +174,6 @@ void DSPCore_SetException(u8 level)
|
|||
// Comming from the CPU
|
||||
void DSPCore_CheckExternalInterrupt()
|
||||
{
|
||||
// check if there is an external interrupt
|
||||
if (! (g_dsp.cr & CR_EXTERNAL_INT))
|
||||
return;
|
||||
|
||||
if (! dsp_SR_is_flag_set(SR_EXT_INT_ENABLE))
|
||||
return;
|
||||
|
||||
|
@ -291,6 +287,23 @@ void DSPCore_Step()
|
|||
void CompileCurrent()
|
||||
{
|
||||
jit->Compile(g_dsp.pc);
|
||||
|
||||
bool retry = true;
|
||||
|
||||
while (retry)
|
||||
{
|
||||
retry = false;
|
||||
for(u16 i = 0x0000; i < 0xffff; ++i)
|
||||
{
|
||||
if (!jit->unresolvedJumps[i].empty())
|
||||
{
|
||||
u16 addrToCompile = jit->unresolvedJumps[i].front();
|
||||
jit->Compile(addrToCompile);
|
||||
if (!jit->unresolvedJumps[i].empty())
|
||||
retry = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u16 DSPCore_ReadRegister(int reg) {
|
||||
|
|
|
@ -30,8 +30,6 @@
|
|||
|
||||
using namespace Gen;
|
||||
|
||||
const u8 *stubEntryPoint;
|
||||
|
||||
DSPEmitter::DSPEmitter() : storeIndex(-1), storeIndex2(-1)
|
||||
{
|
||||
m_compiledCode = NULL;
|
||||
|
|
|
@ -250,6 +250,7 @@ public:
|
|||
|
||||
// CALL this to start the dispatcher
|
||||
const u8 *enterDispatcher;
|
||||
const u8 *stubEntryPoint;
|
||||
u16 compilePC;
|
||||
u16 startAddr;
|
||||
CompiledCode *blockLinks;
|
||||
|
|
Loading…
Reference in New Issue