LLE JIT: Speed up the dispatcher by removing one of the cycle checks. This results in the DSP executing cycles slightly above what it is supposed to. This is not a problem currently but might be later on.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6489 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
9c1fb241c7
commit
93a901dd1d
|
@ -326,12 +326,9 @@ void DSPEmitter::CompileDispatcher()
|
||||||
// Compile block if needed
|
// Compile block if needed
|
||||||
FixupBranch found = J_CC(CC_NE);
|
FixupBranch found = J_CC(CC_NE);
|
||||||
CALL((void *)CompileCurrent);
|
CALL((void *)CompileCurrent);
|
||||||
|
MOVZX(32, 16, ECX, M(&g_dsp.pc));
|
||||||
SetJumpTarget(found);
|
SetJumpTarget(found);
|
||||||
|
|
||||||
// Check if we have enough cycles to execute
|
|
||||||
CMP(32, R(ESI), R(EAX));
|
|
||||||
FixupBranch noCycles = J_CC(CC_B);
|
|
||||||
|
|
||||||
// Execute block. Cycles executed returned in EAX.
|
// Execute block. Cycles executed returned in EAX.
|
||||||
#ifdef _M_IX86
|
#ifdef _M_IX86
|
||||||
CALLptr(MComplex(EBX, ECX, SCALE_4, 0));
|
CALLptr(MComplex(EBX, ECX, SCALE_4, 0));
|
||||||
|
@ -344,12 +341,6 @@ void DSPEmitter::CompileDispatcher()
|
||||||
|
|
||||||
J_CC(CC_A, dispatcherLoop);
|
J_CC(CC_A, dispatcherLoop);
|
||||||
|
|
||||||
// Not enough cycles.
|
|
||||||
SetJumpTarget(noCycles);
|
|
||||||
//MOV(32, M(&cyclesLeft), R(ESI));
|
|
||||||
//ABI_PopAllCalleeSavedRegsAndAdjustStack();
|
|
||||||
//RET();
|
|
||||||
|
|
||||||
// DSP gave up the remaining cycles.
|
// DSP gave up the remaining cycles.
|
||||||
SetJumpTarget(halt);
|
SetJumpTarget(halt);
|
||||||
//MOV(32, M(&cyclesLeft), Imm32(0));
|
//MOV(32, M(&cyclesLeft), Imm32(0));
|
||||||
|
|
Loading…
Reference in New Issue