Initial revision
authorroland <roland>
Fri, 7 Feb 1992 23:33:33 +0000 (23:33 +0000)
committerroland <roland>
Fri, 7 Feb 1992 23:33:33 +0000 (23:33 +0000)
sysdeps/m68k/fpu/fl.h [new file with mode: 0644]

diff --git a/sysdeps/m68k/fpu/fl.h b/sysdeps/m68k/fpu/fl.h
new file mode 100644 (file)
index 0000000..add7351
--- /dev/null
@@ -0,0 +1,36 @@
+/* Floating-point constants for the 68881.
+   Copyright (C) 1992 Free Software Foundation, Inc.  */
+
+/* IGNORE($ This is used internally in the library.  */
+#include <sysdeps/ieee754/fl.h>
+/* ansidecl.m4 here inserts the ieee file.  Kludge o rama.
+   $) ENDCOMMENT INCLUDE($sysdeps/ieee754/fl.h$) STARTCOMMENT */
+
+#if    defined(FLT_ROUNDS) && defined(__GNUC__)
+#undef FLT_ROUNDS
+
+/* Interrogate the 68881 to find the current rounding mode.  */
+
+static __const __inline int
+DEFUN_VOID(__flt_rounds)
+{
+  unsigned long int __fpcr;
+  __asm("fmove%.l fpcr, %0" : "=g" (__fpcr));
+  switch (__fpcr & (1 | 2))
+    {
+    case 0:
+      return _FLT_ROUNDS_TONEAREST;
+    case 1:
+      return _FLT_ROUNDS_TOZERO;
+    case 2:
+      return _FLT_ROUNDS_TONEGINF;
+    case 3:
+      return _FLT_ROUNDS_TOPOSINF;
+    default:
+      return _FLT_ROUNDS_INDETERMINATE;
+    }
+}
+
+#define        FLT_ROUNDS      (__flt_rounds())
+
+#endif