To be able to successfully build OpenMP on FreeBSD/i386, which still
uses i486 as its default processor, I had to provide wrappers for the
__kmp_load_mxcsr and __kmp_store_mxcsr functions.
If the compiler signals that SSE is not available, loading and storing
mxcsr does not make sense anway, so in that case the inline functions
are empty. This gives the minimum amount of code churn.
This needs to play well with Windows. Can we stick these in the above operating system split section:
#if KMP_OS_UNIX // Code for __kmp_x86_cpuid, __kmp_load_x87... // Your current patch #else // Windows still has these as external function in assembly file ... static inline void __kmp_load_mxcsr(const kmp_uint32 *p) { _mm_setcsr(*(p)); } static inline void __kmp_store_mxcsr(kmp_uint32 *p) { *p = _mm_getcsr(); } #endif // KMP_OS_UNIX