In message <[EMAIL PROTECTED]>
          Bill Allombert <[EMAIL PROTECTED]> wrote:

> the relevant code look like
> 
> #if   PARI_BYTE_ORDER == LITTLE_ENDIAN
> #  define INDEX0 1
> #  define INDEX1 0
> #elif PARI_BYTE_ORDER == BIG_ENDIAN
> #  define INDEX0 0
> #  define INDEX1 1
> #else
>    error... unknown machine
> #endif

[snip]

> GEN is the pari generic type.
> 
> Upstream author know about this problem and believe that the solution is
> that correct #define for arm are
> 
> #  define INDEX0 1
> #  define INDEX1 0
> (so as if it was big-endian).
> 
> I test it and it works.
> 
> Can someone explain me what happen, so that I work out a good patch ?

The solution is correct.  Despite ARM systems usually being small
endian, the word ordering of double floating point values is as you'd
expect on a big endian machine.   This typically affects things like
compilers, which need a fix similar to what you have here.

Peter

-- 
------------------------------------------------------------------------
 Peter Naulls - [EMAIL PROTECTED]
 RISC OS Projects Initiative  -  http://chocky.mine.nu/initiative/
 Java for RISC OS and ARM     -  http://www.java.riscos.org.uk/
 Debian Linux on RiscPCs      -  http://chocky.mine.nu/debian/
------------------------------------------------------------------------


Reply via email to