Fixed the crash in DSP LLE JIT on x64 by aligning the stack.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5357 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
skidau
2010-04-13 10:18:05 +00:00
parent 379c469343
commit 122d5e7b4e
4 changed files with 37 additions and 87 deletions

View File

@ -113,7 +113,7 @@ void DSPEmitter::Default(UDSPInstruction _inst)
const u8 *DSPEmitter::Compile(int start_addr) {
AlignCode16();
const u8 *entryPoint = GetCodePtr();
// ABI_PushAllCalleeSavedRegsAndAdjustStack();
ABI_AlignStack(0);
int addr = start_addr;
@ -133,7 +133,7 @@ const u8 *DSPEmitter::Compile(int start_addr) {
FixupBranch noExceptionOccurred = J_CC(CC_L);
// ABI_CallFunction((void *)DSPInterpreter::HandleLoop);
// ABI_PopAllCalleeSavedRegsAndAdjustStack();
ABI_RestoreStack(0);
RET();
SetJumpTarget(skipCheck);
@ -158,7 +158,7 @@ const u8 *DSPEmitter::Compile(int start_addr) {
// These functions branch and therefore only need to be called in the
// end of each block and in this order
ABI_CallFunction((void *)&DSPInterpreter::HandleLoop);
// ABI_PopAllCalleeSavedRegsAndAdjustStack();
ABI_RestoreStack(0);
RET();
SetJumpTarget(rLoopAddressExit);
@ -180,7 +180,7 @@ const u8 *DSPEmitter::Compile(int start_addr) {
addr += opcode->size;
}
// ABI_PopAllCalleeSavedRegsAndAdjustStack();
ABI_RestoreStack(0);
RET();
blocks[start_addr] = (CompiledCode)entryPoint;