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
|
// Comming from the CPU
|
||||||
void DSPCore_CheckExternalInterrupt()
|
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))
|
if (! dsp_SR_is_flag_set(SR_EXT_INT_ENABLE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -291,6 +287,23 @@ void DSPCore_Step()
|
||||||
void CompileCurrent()
|
void CompileCurrent()
|
||||||
{
|
{
|
||||||
jit->Compile(g_dsp.pc);
|
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) {
|
u16 DSPCore_ReadRegister(int reg) {
|
||||||
|
|
|
@ -30,8 +30,6 @@
|
||||||
|
|
||||||
using namespace Gen;
|
using namespace Gen;
|
||||||
|
|
||||||
const u8 *stubEntryPoint;
|
|
||||||
|
|
||||||
DSPEmitter::DSPEmitter() : storeIndex(-1), storeIndex2(-1)
|
DSPEmitter::DSPEmitter() : storeIndex(-1), storeIndex2(-1)
|
||||||
{
|
{
|
||||||
m_compiledCode = NULL;
|
m_compiledCode = NULL;
|
||||||
|
|
|
@ -250,6 +250,7 @@ public:
|
||||||
|
|
||||||
// CALL this to start the dispatcher
|
// CALL this to start the dispatcher
|
||||||
const u8 *enterDispatcher;
|
const u8 *enterDispatcher;
|
||||||
|
const u8 *stubEntryPoint;
|
||||||
u16 compilePC;
|
u16 compilePC;
|
||||||
u16 startAddr;
|
u16 startAddr;
|
||||||
CompiledCode *blockLinks;
|
CompiledCode *blockLinks;
|
||||||
|
|
Loading…
Reference in New Issue