9 typedef struct FPUCtl
{
10 #if defined(__GNUC__) && defined(HAVE_SSE)
11 unsigned int sse_state
;
12 #elif defined(HAVE___CONTROL87_2)
14 unsigned int sse_state
;
15 #elif defined(HAVE__CONTROLFP)
19 void SetMixerFPUMode(FPUCtl
*ctl
);
20 void RestoreFPUMode(const FPUCtl
*ctl
);
23 /* Use an alternate macro set with GCC to avoid accidental continue or break
24 * statements within the mixer mode.
26 #define START_MIXER_MODE() __extension__({ FPUCtl _oldMode; SetMixerFPUMode(&_oldMode)
27 #define END_MIXER_MODE() RestoreFPUMode(&_oldMode); })
29 #define START_MIXER_MODE() do { FPUCtl _oldMode; SetMixerFPUMode(&_oldMode)
30 #define END_MIXER_MODE() RestoreFPUMode(&_oldMode); } while(0)
32 #define LEAVE_MIXER_MODE() RestoreFPUMode(&_oldMode)
34 #endif /* FPU_MODES_H */