1 /* 2 * COPYRIGHT: See COPYING.LIB in the top level directory 3 * PROJECT: ReactOS system libraries 4 * PURPOSE: Resets FPU state to the default 5 * PROGRAMER: Thomas Faber <thomas.faber@reactos.org> 6 */ 7 8 #include <precomp.h> 9 10 /********************************************************************* 11 * _fpreset (MSVCRT.@) 12 */ 13 void CDECL _fpreset(void) 14 { 15 const unsigned short x86_cw = 0x27f; 16 #ifdef _MSC_VER 17 __asm { fninit } 18 __asm { fldcw [x86_cw] } 19 #else 20 __asm__ __volatile__( "fninit; fldcw %0" : : "m" (x86_cw) ); 21 #endif 22 if (IsProcessorFeaturePresent(PF_XMMI64_INSTRUCTIONS_AVAILABLE)) 23 { 24 const unsigned long sse2_cw = 0x1f80; 25 #ifdef _MSC_VER 26 __asm { ldmxcsr [sse2_cw] } 27 #else 28 __asm__ __volatile__( "ldmxcsr %0" : : "m" (sse2_cw) ); 29 #endif 30 } 31 } 32