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]

Reply via email to