summaryrefslogtreecommitdiff
path: root/ports/sysdeps/m68k/m680x0/fpu/math_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'ports/sysdeps/m68k/m680x0/fpu/math_private.h')
-rw-r--r--ports/sysdeps/m68k/m680x0/fpu/math_private.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/ports/sysdeps/m68k/m680x0/fpu/math_private.h b/ports/sysdeps/m68k/m680x0/fpu/math_private.h
new file mode 100644
index 0000000000..217de2ecc2
--- /dev/null
+++ b/ports/sysdeps/m68k/m680x0/fpu/math_private.h
@@ -0,0 +1,19 @@
+#ifndef _MATH_PRIVATE_H
+
+#define math_opt_barrier(x) \
+({ __typeof (x) __x; \
+ __asm ("" : "=f" (__x) : "0" (x)); \
+ __x; })
+#define math_force_eval(x) \
+do \
+ { \
+ __typeof (x) __x = (x); \
+ if (sizeof (x) <= sizeof (double)) \
+ __asm __volatile ("" : : "m" (__x)); \
+ else \
+ __asm __volatile ("" : : "f" (__x)); \
+ } \
+while (0)
+
+#include_next <math_private.h>
+#endif