[kaffe] ARM Double problems

Helmer Krämer hkraemer at freenet.de
Tue Nov 9 04:41:18 PST 2004


On Tue, 9 Nov 2004 13:41:36 +0200 (EET)
Jari Korva <jpkorva at iki.fi> wrote:

> Hi again,
> 
> On Fri, 5 Nov 2004, Helmer [ISO-8859-15] Krämer wrote:
> > config/config-hacks.h defines a macro DOUBLE_ORDER_OPPOSITE
> > which tells kaffe that the word order of doubles is different
> > from the word order of jlongs (it's used in kaffe/kaffevm/fp.c).
> > At the moment this macro is always defined when compiling kaffe
> > for arm. Could you try whether the double problems are solved
> > when this macro is not defined? If so, we should work out some
> > preprocessor or configure magic to detect whether that macro
> > is necessary.
> 
> How about this:
> 
> #include <endian.h>
> 
> ...
> 
> #if __BYTE_ORDER != __FLOAT_WORD_ORDER
>   #define DOUBLE_ORDER_OPPOSITE
> #endif
> 
> It seems to produce correct results at least on my x86, armv5b (XScale
> IXP) and armv5l (StrongARM).

glibc doesn't seem to properly define __FLOAT_WORD_ORDER for all
combinations (vfp / fpa) [1]. How about

#if defined(__ARMEL__) && !defined(__VFP_FP__)
#define DOUBLE_ORDER_OPPOSITE
#endif

?

Regards,
Helmer

[1] http://www.kegel.com/crosstool/crosstool-0.28-rc37/patches/glibc-2.3.2/glibc-fp-byteorder.patch




More information about the kaffe mailing list