diff options
Diffstat (limited to 'source/creator/creator.c')
-rw-r--r-- | source/creator/creator.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/creator/creator.c b/source/creator/creator.c index 25455c99a71..10f82b90516 100644 --- a/source/creator/creator.c +++ b/source/creator/creator.c @@ -41,6 +41,9 @@ #endif #ifdef WIN32 +# if defined(_MSC_VER) && _MSC_VER >= 1800 && defined(_M_X64) +# include <math.h> /* needed for _set_FMA3_enable */ +# endif # include <windows.h> # include "utfconv.h" #endif @@ -1501,7 +1504,13 @@ int main( bArgs *ba; #endif -#ifdef WIN32 /* Win32 Unicode Args */ +#ifdef WIN32 + /* FMA3 support in the 2013 CRT is broken on Vista and Windows 7 RTM (fixed in SP1). Just disable it. */ +# if defined(_MSC_VER) && _MSC_VER >= 1800 && defined(_M_X64) + _set_FMA3_enable(0); +# endif + + /* Win32 Unicode Args */ /* NOTE: cannot use guardedalloc malloc here, as it's not yet initialized * (it depends on the args passed in, which is what we're getting here!) */ |