On Sat, Sep 27, 2008 at 12:59 AM, Erik Corry <[EMAIL PROTECTED]> wrote: > I made the O9 to O3 and added volatile to the pointers intended to force fp > values into memory. > > On Fri, Sep 26, 2008 at 6:37 PM, <[EMAIL PROTECTED]> wrote: >> >> The union trick is not defined in the standard, but apparently supported >> by GCC. > > It's there to get around a problem with gcc so that doesn't worry me too > much. I realize that other compilers may choose to make use of the strict > aliasing rule. This change doesn't make that situation any better or worse > on those compilers.
Yes, but why do it the wrong way, when you can as easily have done it the right way? > >> >> """The practice of reading from a different union member than the one >> most recently written to (called "type-punning") is common. Even with >> -fstrict-aliasing, type-punning is allowed, provided the memory is >> accessed through the union type.""" >> >> I don't know if this applies to MSVC. >> >> >> http://codereview.chromium.org/5007/diff/1/11 >> File src/checks.h (right): >> >> http://codereview.chromium.org/5007/diff/1/11#newcode172 >> Line 172: if (*exp != *val) { >> The correct way of forcing 64-bit FPU is to use "volatile". >> >> http://codereview.chromium.org/5007 > > > > -- > Erik Corry, Software Engineer > Google Denmark ApS. CVR nr. 28 86 69 84 > c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018 Copenhagen K, > Denmark. > --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---