Work around VU0.code & VU1.code being packed in Linux when freezing memory.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3411 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
arcum42 2010-07-07 09:14:47 +00:00
parent ae92387cea
commit fc3514107d
3 changed files with 14 additions and 0 deletions

View File

@ -557,6 +557,7 @@ set(pcsx2x86Headers
x86/newVif_BlockBuffer.h
x86/newVif_HashBucket.h
x86/newVif_UnpackSSE.h
x86/sVU_Compare.h
x86/sVU_Debug.h
x86/sVU_Micro.h
x86/sVU_zerorec.h

View File

@ -593,6 +593,7 @@
<Unit filename="../x86/newVif_Unpack.cpp" />
<Unit filename="../x86/newVif_UnpackSSE.cpp" />
<Unit filename="../x86/newVif_UnpackSSE.h" />
<Unit filename="../x86/sVU_Compare.h" />
<Unit filename="../x86/sVU_Debug.h" />
<Unit filename="../x86/sVU_Lower.cpp" />
<Unit filename="../x86/sVU_Micro.cpp" />

View File

@ -111,7 +111,13 @@ void SaveStateBase::vuMicroFreeze()
pxAssume( VU1.Mem != NULL );
Freeze(VU0.ACC);
#ifdef __LINUX__
// GCC is unable to bind packed fields.
u32 temp_vu0_code = VU0.code;
Freeze(temp_vu0_code);
#else
Freeze(VU0.code);
#endif
FreezeMem(VU0.Mem, 4*1024);
FreezeMem(VU0.Micro, 4*1024);
@ -119,7 +125,13 @@ void SaveStateBase::vuMicroFreeze()
Freeze(VU0.VI);
Freeze(VU1.ACC);
#ifdef __LINUX__
// GCC is unable to bind packed fields.
u32 temp_vu1_code = VU1.code;
Freeze(temp_vu1_code);
#else
Freeze(VU1.code);
#endif
FreezeMem(VU1.Mem, 16*1024);
FreezeMem(VU1.Micro, 16*1024);