aboutsummaryrefslogtreecommitdiff
path: root/lib/msun/powerpc/fenv.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/msun/powerpc/fenv.h')
-rw-r--r--lib/msun/powerpc/fenv.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/msun/powerpc/fenv.h b/lib/msun/powerpc/fenv.h
index 33de3750a93a..8fbecd7c0806 100644
--- a/lib/msun/powerpc/fenv.h
+++ b/lib/msun/powerpc/fenv.h
@@ -87,8 +87,13 @@ extern const fenv_t __fe_dfl_env;
FE_OVERFLOW | FE_UNDERFLOW) >> _FPUSW_SHIFT)
#ifndef _SOFT_FLOAT
+#ifdef __SPE__
+#define __mffs(__env) __asm __volatile("mfspr %0, 512" : "=r" (*(__env)))
+#define __mtfsf(__env) __asm __volatile("mtspr 512,%0" : : "r" (__env))
+#else
#define __mffs(__env) __asm __volatile("mffs %0" : "=f" (*(__env)))
#define __mtfsf(__env) __asm __volatile("mtfsf 255,%0" : : "f" (__env))
+#endif
#else
#define __mffs(__env)
#define __mtfsf(__env)