summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
diff options
context:
space:
mode:
authorcomex <comexk@gmail.com>2013-09-22 15:48:27 -0400
committercomex <comexk@gmail.com>2013-09-22 15:48:27 -0400
commit6209067daa5121e383d173f7272bbf20bc108047 (patch)
tree8ffb7ece371b3d3f9a1e3feae116cc6c3551bfee /Source/Core/VideoCommon
parent9a6f28fce486f351c19a304f5ede5662ea802357 (diff)
Fix stack misalignment fix.
Diffstat (limited to 'Source/Core/VideoCommon')
-rw-r--r--Source/Core/VideoCommon/Src/VertexLoader.cpp5
-rw-r--r--Source/Core/VideoCommon/Src/x64DLCache.cpp5
2 files changed, 6 insertions, 4 deletions
diff --git a/Source/Core/VideoCommon/Src/VertexLoader.cpp b/Source/Core/VideoCommon/Src/VertexLoader.cpp
index babaff83a5..825e9c6558 100644
--- a/Source/Core/VideoCommon/Src/VertexLoader.cpp
+++ b/Source/Core/VideoCommon/Src/VertexLoader.cpp
@@ -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);
}
diff --git a/Source/Core/VideoCommon/Src/x64DLCache.cpp b/Source/Core/VideoCommon/Src/x64DLCache.cpp
index ae32ea5ea9..b412c2e274 100644
--- a/Source/Core/VideoCommon/Src/x64DLCache.cpp
+++ b/Source/Core/VideoCommon/Src/x64DLCache.cpp
@@ -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();