It's more portable.
Use _mm_shuffle_epi32 instead of _mm_movehl_ps - I think it avoids
data bypass delays going from integer to float domains on older
processors, and Agner's tables indicate that the instruction has the
same latency and occasionally has higher throughput (depending on cpu).
And switch the _mm_xor_si128 and _mm_unpacklo_epi8 around so the same
constant can be used for both C bias and alpha.
The yuv2rgb_sse2 implementation is x86_32 only, so x86_64 can't take advantage of this optimized code path.
This requires the architecture defines to be working fully, so this can't be merged until it is fixed on the Windows side of things.
* Savestate mega-fix! Removed all the old direct pointer types from decoder_t, which should fix the oddball random savestate crashes when IPU is active.
* Moved iq/niq into decoder_t.
* Moved all macroblocks into decoder_t (mb8, mb16, rgb16, rgb32).
* Turned decoder.stride into a constant, since IPU can only decode in strides of 16 bytes only.
* Added sanity checking to the ipu0_fifo stuff (was formerly g_nIPU0Data, etc).
* Added some SSE moves to the Idct (very minor optimization). There's a completely SSE from-ground-up implementation provided by newer versions of libmpeg2 that we should probably look into later, rather than rolling our own.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3587 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fixed Memcard init so that Memcard1 isn't default in both slots (oops!)
* Fixed Memcard path logic so that cards outside your pcsx2 folder can be browsed/selected.
* Fixed CDVD-to-BIOS time sync (I simply forgot a function call!)
* Optimized yuvrgb_sse2, by using Mod/RM form instructions.
* Win32: Same optimization applied to FreezeXMMRegs and FreezeMMXRegs (linux already had this optimization)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@719 96395faa-99c1-11dd-bbfe-3dabce05a288
Added interface.cpp (plugin/pcsx2 interface) and savestate.cpp to SPU2ghz, to help clean up SPU2.cpp.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@463 96395faa-99c1-11dd-bbfe-3dabce05a288