summaryrefslogtreecommitdiffstats
path: root/Alc/helpers.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2013-05-22 23:05:26 -0700
committerChris Robinson <[email protected]>2013-05-22 23:05:26 -0700
commitbe4a4d74686fffb0a7e38cb4b1cad9653d2ba00f (patch)
treecb05d3420407642a8d5862d2a50c70dc2efbda09 /Alc/helpers.c
parenteb15b13ca16e4ecf254c2143f18b4d03d76179ab (diff)
Use fegetenv/fesetenv to backup and restore the FPU state
Diffstat (limited to 'Alc/helpers.c')
-rw-r--r--Alc/helpers.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Alc/helpers.c b/Alc/helpers.c
index a95e5ae3..25f85370 100644
--- a/Alc/helpers.c
+++ b/Alc/helpers.c
@@ -201,8 +201,8 @@ void al_free(void *ptr)
void SetMixerFPUMode(FPUCtl *ctl)
{
-#if defined(HAVE_FESETROUND)
- ctl->state = fegetround();
+#ifdef HAVE_FENV_H
+ fegetenv(STATIC_CAST(fenv_t, ctl));
#if defined(__GNUC__) && defined(HAVE_SSE)
if((CPUCapFlags&CPU_CAP_SSE))
__asm__ __volatile__("stmxcsr %0" : "=m" (*&ctl->sse_state));
@@ -245,8 +245,8 @@ void SetMixerFPUMode(FPUCtl *ctl)
void RestoreFPUMode(const FPUCtl *ctl)
{
-#if defined(HAVE_FESETROUND)
- fesetround(ctl->state);
+#ifdef HAVE_FENV_H
+ fesetenv(STATIC_CAST(fenv_t, ctl));
#if defined(__GNUC__) && defined(HAVE_SSE)
if((CPUCapFlags&CPU_CAP_SSE))
__asm__ __volatile__("ldmxcsr %0" : : "m" (*&ctl->sse_state));