summaryrefslogtreecommitdiff
path: root/rnd_mode.c
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>1999-10-20 10:19:30 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>1999-10-20 10:19:30 +0000
commitc1c320c17a7c2103b395b47d5110b3ea5ae07bef (patch)
tree3cff811ba1692607507b13c1aa55c676747a97a2 /rnd_mode.c
parent226ac038b375f33dc0b65ff6d0ee3684006b5e28 (diff)
downloadmpfr-c1c320c17a7c2103b395b47d5110b3ea5ae07bef.tar.gz
added rounding instructions for Cygnus compiler under Windows
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@395 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'rnd_mode.c')
-rw-r--r--rnd_mode.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/rnd_mode.c b/rnd_mode.c
index 47ab55466..9c37fb4c1 100644
--- a/rnd_mode.c
+++ b/rnd_mode.c
@@ -74,8 +74,18 @@ char *out;
#define TONEAREST ieee_flags("set","direction","nearest",&out)
#define TOINFM ieee_flags("set","direction","negative",&out)
#elif (defined (__i386__) || defined (__i486__) || defined (linux))
+#ifdef __CYGWIN32__ /* no fpu_control.h under Cygnus */
+#define _FPU_EXTENDED 0x300
+#define _FPU_DOUBLE 0x200
+#define _FPU_DEFAULT 0x137f
+#define _FPU_RC_NEAREST 0x0
+#define _FPU_RC_DOWN 0x400
+#define _FPU_RC_UP 0x800
+#define _FPU_RC_ZERO 0xC00
+#else
#include <fpu_control.h>
-#ifdef LIBC211
+#endif
+#if defined(LIBC211) || defined(__CYGWIN32__)
#define __setfpucw(cw) __asm__ ("fldcw %0" : : "m" (cw))
#endif
/* be careful to put Precision control bits