Fix stack misalignment fix.

This commit is contained in:
comex
2013-09-22 15:48:27 -04:00
parent 9a6f28fce4
commit 6209067daa
8 changed files with 139 additions and 187 deletions

View File

@ -217,7 +217,7 @@ void VertexLoader::CompileVertexTranslator()
PanicAlert("Trying to recompile a vertex translator");
m_compiledCode = GetCodePtr();
ABI_EmitPrologue(4);
ABI_PushAllCalleeSavedRegsAndAdjustStack();
// Start loop here
const u8 *loop_start = GetCodePtr();
@ -499,7 +499,8 @@ void VertexLoader::CompileVertexTranslator()
#endif
J_CC(CC_NZ, loop_start, true);
ABI_EmitEpilogue(4);
ABI_PopAllCalleeSavedRegsAndAdjustStack();
RET();
#endif
m_NativeFmt->Initialize(vtx_decl);
}

View File

@ -409,7 +409,7 @@ void CompileAndRunDisplayList(u32 address, u32 size, CachedDisplayList *dl)
emitter.AlignCode4();
dl->compiled_code = emitter.GetCodePtr();
emitter.ABI_EmitPrologue(4);
emitter.ABI_PushAllCalleeSavedRegsAndAdjustStack();
while (g_pVideoData < end)
{
@ -572,7 +572,8 @@ void CompileAndRunDisplayList(u32 address, u32 size, CachedDisplayList *dl)
break;
}
}
emitter.ABI_EmitEpilogue(4);
emitter.ABI_PopAllCalleeSavedRegsAndAdjustStack();
emitter.RET();
INCSTAT(stats.numDListsCalled);
INCSTAT(stats.thisFrame.numDListsCalled);
Statistics::SwapDL();