diff Python/pymath.c @ 51485:f9f2ed79b00f

Merged revisions 69459 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r69459 | mark.dickinson | 2009-02-09 14:18:43 +0000 (Mon, 09 Feb 2009) | 3 lines Issue #4575: fix Py_IS_INFINITY macro to work correctly on x87 FPUs. It now forces its argument to double before testing for infinity. ........
author Mark Dickinson <dickinsm@gmail.com>
date Mon, 09 Feb 2009 17:15:59 +0000
parents e86ed113535c
children ad5c7eaccea1 97ae7a709c1d
line wrap: on
line diff
--- a/Python/pymath.c	Mon Feb 09 16:44:24 2009 +0000
+++ b/Python/pymath.c	Mon Feb 09 17:15:59 2009 +0000
@@ -1,5 +1,18 @@
 #include "Python.h"
 
+#ifdef X87_DOUBLE_ROUNDING
+/* On x86 platforms using an x87 FPU, this function is called from the
+   Py_FORCE_DOUBLE macro (defined in pymath.h) to force a floating-point
+   number out of an 80-bit x87 FPU register and into a 64-bit memory location,
+   thus rounding from extended precision to double precision. */
+double _Py_force_double(double x)
+{
+	volatile double y;
+	y = x;
+	return y;
+}
+#endif
+
 #ifndef HAVE_HYPOT
 double hypot(double x, double y)
 {