SSE and MMX intrinsics work with Visual Studio now...
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%402613
This commit is contained in:
parent
ae461fc306
commit
743406caf2
3 changed files with 12 additions and 3 deletions
|
@ -47,7 +47,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..\include"
|
AdditionalIncludeDirectories="..\..\include"
|
||||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0400"
|
PreprocessorDefinitions="_DEBUG;_WINDOWS;_WIN32_WINNT=0x0400;__SSE__;__MMX__"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
BufferSecurityCheck="false"
|
BufferSecurityCheck="false"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
@ -145,7 +145,7 @@
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
EnableIntrinsicFunctions="false"
|
EnableIntrinsicFunctions="false"
|
||||||
AdditionalIncludeDirectories="..\..\include"
|
AdditionalIncludeDirectories="..\..\include"
|
||||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0400"
|
PreprocessorDefinitions="NDEBUG;_WINDOWS;_WIN32_WINNT=0x0400;__SSE__;__MMX__"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
BufferSecurityCheck="false"
|
BufferSecurityCheck="false"
|
||||||
|
|
|
@ -103,7 +103,7 @@ extern SDL_loblit SDL_CalculateAlphaBlit(SDL_Surface * surface, int complex);
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
#define DECLARE_ALIGNED(t,v,a) t __attribute__((aligned(a))) v
|
#define DECLARE_ALIGNED(t,v,a) t __attribute__((aligned(a))) v
|
||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER)
|
||||||
#define DECLARE_ALIGNED(t,v,a) t __declspec(align(a)) v
|
#define DECLARE_ALIGNED(t,v,a) __declspec(align(a)) t v
|
||||||
#else
|
#else
|
||||||
#define DECLARE_ALIGNED(t,v,a) t v
|
#define DECLARE_ALIGNED(t,v,a) t v
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -512,6 +512,14 @@ SDL_UpperBlit(SDL_Surface * src, SDL_Rect * srcrect,
|
||||||
#ifdef __SSE__
|
#ifdef __SSE__
|
||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define SSE_BEGIN \
|
||||||
|
__m128 c128; \
|
||||||
|
c128.m128_u32[0] = color; \
|
||||||
|
c128.m128_u32[1] = color; \
|
||||||
|
c128.m128_u32[2] = color; \
|
||||||
|
c128.m128_u32[3] = color;
|
||||||
|
#else
|
||||||
#define SSE_BEGIN \
|
#define SSE_BEGIN \
|
||||||
DECLARE_ALIGNED(Uint32, cccc[4], 16); \
|
DECLARE_ALIGNED(Uint32, cccc[4], 16); \
|
||||||
cccc[0] = color; \
|
cccc[0] = color; \
|
||||||
|
@ -519,6 +527,7 @@ SDL_UpperBlit(SDL_Surface * src, SDL_Rect * srcrect,
|
||||||
cccc[2] = color; \
|
cccc[2] = color; \
|
||||||
cccc[3] = color; \
|
cccc[3] = color; \
|
||||||
__m128 c128 = *(__m128 *)cccc;
|
__m128 c128 = *(__m128 *)cccc;
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SSE_WORK \
|
#define SSE_WORK \
|
||||||
for (i = n / 64; i--;) { \
|
for (i = n / 64; i--;) { \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue