Make the SSE3.1 VideoCommon code available in GCC builds.

The GCC model for extended instructions like these is that you compile
with -msse3 etc. These affect code generation for whole compilation units,
so the idea is that you have a separate .c file for each instruction set
class and then indirect to the desired one at runtime.

Without e.g. -msse4.1, the GCC built-ins used by <foointrin.h> are not
available. However, in our specific case of compiling with -msse2 and
wanting to use SSE3.1 code, enough built-ins are available that we only
need to provide a little hack for pshufb.

Upgrading this to also use SSE4.1 instructions doesn't appear feasible
without a lot of undesirable duplication of GCC built-in functions and
headers, so we'd probably have to move to the GCC model of separate
source files for that.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6014 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Soren Jorvang
2010-07-31 14:40:01 +00:00
parent 840bd3613f
commit 824b509d2e
4 changed files with 29 additions and 12 deletions

View File

@ -15,14 +15,6 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
#include <cmath>
#if _M_SSE >= 0x401
#include <smmintrin.h>
#elif _M_SSE >= 0x301
#include <tmmintrin.h>
#endif
#include "Common.h"
//#include "VideoCommon.h" // to get debug logs
@ -37,6 +29,14 @@
#include "LookUpTables.h"
#include <cmath>
#if _M_SSE >= 0x401
#include <smmintrin.h>
#elif _M_SSE >= 0x301
#include <tmmintrin.h>
#endif
bool TexFmt_Overlay_Enable=false;
bool TexFmt_Overlay_Center=false;