I'll test it this weekend. Thank you! Adam
Ben Hutchings wrote: > Here's a patch that may fix the bug, but I haven't yet been able to test > it. > > Ben. > > --- jikes-1.22/src/double.h.orig 2004-06-02 12:26:22.000000000 +0100 > +++ jikes-1.22/src/double.h 2006-10-19 11:38:23.000000000 +0100 > @@ -63,6 +63,11 @@ > #include "platform.h" > #include "long.h" > > +// We should really have an autoconf test for this, but autoconf hates me. > +#if defined(WORDS_BIGENDIAN) || (defined(__arm__) && !defined(__VFP_FP__)) > +#define DOUBLES_BIGENDIAN_WORDS > +#endif > + > #ifdef HAVE_JIKES_NAMESPACE > namespace Jikes { // Open namespace Jikes block > #endif > @@ -395,7 +400,25 @@ > static const IEEEdouble bigtens[]; // powers of 10 by powers of 2 > #endif > > +#if defined(WORDS_BIGENDIAN) != defined(DOUBLES_BIGENDIAN_WORDS) > + // This is sick, but then so is this entire class hierarchy. > + inline void setHighWord(u4 high) { BaseLong::setLowWord(high); } > + inline void setLowWord(u4 low) { BaseLong::setHighWord(low); } > + using BaseLong::setHighAndLowWords; > + inline void setHighAndLowWords(u4 high, u4 low) > + { BaseLong::setHighAndLowWords(low, high); } > +#endif > +#ifdef HAVE_64BIT_TYPES > + // This really isn't going to help anyone. Make it private. > + using BaseLong::Words; > +#endif > + > public: > +#if defined(WORDS_BIGENDIAN) != defined(DOUBLES_BIGENDIAN_WORDS) > + inline u4 HighWord() const { return BaseLong::LowWord(); } > + inline u4 LowWord() const { return BaseLong::HighWord(); } > +#endif > + > // > // Information methods, for evaluating components of the float > // > -- END -- > -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]