This patch simply flips on the _USE_SSE/_USE_SSE2 automatically if the visual
[speexdsp.git] / win32 / config.h
1 // Microsoft version of 'inline'\r
2 #define inline __inline\r
3 \r
4 // In Visual Studio, _M_IX86_FP=1 means /arch:SSE was used, likewise\r
5 // _M_IX86_FP=2 means /arch:SSE2 was used.\r
6 // Also, enable both _USE_SSE and _USE_SSE2 if we're compiling for x86-64\r
7 #if _M_IX86_FP >= 1 || defined(_M_X64)\r
8 #define _USE_SSE\r
9 #endif\r
10 \r
11 #if _M_IX86_FP >= 2 || defined(_M_X64)\r
12 #define _USE_SSE2\r
13 #endif\r
14 \r
15 // Visual Studio support alloca(), but it always align variables to 16-bit\r
16 // boundary, while SSE need 128-bit alignment. So we disable alloca() when\r
17 // SSE is enabled.\r
18 #ifndef _USE_SSE\r
19 #  define USE_ALLOCA\r
20 #endif\r
21 \r
22 /* Default to floating point */\r
23 #ifndef FIXED_POINT\r
24 #  define FLOATING_POINT\r
25 #  define USE_SMALLFT\r
26 #else\r
27 #  define USE_KISS_FFT\r
28 #endif\r
29 \r
30 /* We don't support visibility on Win32 */\r
31 #define EXPORT\r