On Sat, Sep 27, 2008 at 1:15 AM, <[EMAIL PROTECTED]> wrote:
>
> 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;
Can't we avoid dynamically allocating memory? Does this not work?
if (*reinterpret_cast<volatile double*>(&expected) ==
*reinterpret_cast<volatile double*>(&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
-~----------~----~----~----~------~----~------~--~---