This patch fixes a problem reported by Matt Shaver, traced to a floating-point 
precision issue.  It's been in master for a while, seems to fix the problem, 
doesnt seem to break anything else.  Please apply to 2.3.

--
Sebastian Kuzminsky
--- Begin Message ---
---
 src/hal/drivers/mesa-hostmot2/stepgen.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/hal/drivers/mesa-hostmot2/stepgen.c 
b/src/hal/drivers/mesa-hostmot2/stepgen.c
index 1e7616c..0e9ea93 100644
--- a/src/hal/drivers/mesa-hostmot2/stepgen.c
+++ b/src/hal/drivers/mesa-hostmot2/stepgen.c
@@ -193,0 +194,9 @@ static void 
hm2_stepgen_instance_position_control(hostmot2_t *hm2, long l_period
+// This function was invented by Jeff Epler.
+// It forces a floating-point variable to be degraded from native register
+// size (80 bits on x86) to C double size (64 bits).
+static double force_precision(double d) __attribute__((__noinline__));
+static double force_precision(double d) {
+    return d;
+}
+
+
@@ -214,0 +224 @@ static void 
hm2_stepgen_instance_prepare_tram_write(hostmot2_t *hm2, long l_peri
+        physical_maxvel = force_precision(physical_maxvel);
-- 
1.5.4.3


--- End Message ---
------------------------------------------------------------------------------
_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to