Author: [EMAIL PROTECTED]
Date: Fri Sep 26 16:14:43 2008
New Revision: 389

Modified:
    branches/bleeding_edge/src/checks.h

Log:
Fix failing test caused by extra precision in register allocated fp values.
Review URL: http://codereview.chromium.org/5019

Modified: branches/bleeding_edge/src/checks.h
==============================================================================
--- branches/bleeding_edge/src/checks.h (original)
+++ branches/bleeding_edge/src/checks.h Fri Sep 26 16:14:43 2008
@@ -164,11 +164,18 @@
                                       double expected,
                                       const char* value_source,
                                       double value) {
-  if (expected != value) {
+  // Force values to 64 bit memory to truncate 80 bit precision on IA32.
+  volatile double* exp = new double[1];
+  *exp = expected;
+  volatile double* val = new double[1];
+  *val = value;
+  if (*exp != *val) {
      V8_Fatal(file, line,
               "CHECK_EQ(%s, %s) failed\n#   Expected: %f\n#   Found: %f",
-             expected_source, value_source, expected, value);
+             expected_source, value_source, *exp, *val);
    }
+  delete[] exp;
+  delete[] val;
  }



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to