diff options
author | Nick Clifton <nickc@redhat.com> | 2001-06-28 10:40:09 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2001-06-28 10:40:09 +0000 |
commit | 2b6b730c986a53e9e10ef22508541bdb3151a5fe (patch) | |
tree | 28b0f82b77b5a273b6fdf2b36034cb585a43a671 /newlib | |
parent | 288f125efd393633bb18277d585682f09a5a8b52 (diff) | |
download | newlib-2b6b730c986a53e9e10ef22508541bdb3151a5fe.zip newlib-2b6b730c986a53e9e10ef22508541bdb3151a5fe.tar.gz newlib-2b6b730c986a53e9e10ef22508541bdb3151a5fe.tar.bz2 |
Handle ARMs with big endian IEEE words but little endian IEEE bytes
Diffstat (limited to 'newlib')
-rw-r--r-- | newlib/ChangeLog | 8 | ||||
-rw-r--r-- | newlib/libc/include/machine/ieeefp.h | 6 | ||||
-rw-r--r-- | newlib/libc/stdlib/mprec.h | 2 |
3 files changed, 13 insertions, 3 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog index e257e42..040a00e 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,11 @@ +2001-06-27 Nick Clifton <nickc@cambridge.redhat.com> + + * libc/include/machine/ieeefp.h (__IEEE_BYTES_LITTLE_ENDIAN): + Define for little endian ARMs. + + * libc/stdlib/mprec.h (Storeinc): Use little endian version if + __IEEE_BYTES_LITTLE_ENDIAN is defined. + 2001-06-11 Danny Smith <dannysmith@users.sourceforge.net> * /libc/include/ctype.h (is* and to* macros): Do not define if C++. diff --git a/newlib/libc/include/machine/ieeefp.h b/newlib/libc/include/machine/ieeefp.h index b96f912..cc5ced4 100644 --- a/newlib/libc/include/machine/ieeefp.h +++ b/newlib/libc/include/machine/ieeefp.h @@ -21,9 +21,11 @@ #if defined(__arm__) || defined(__thumb__) /* ARM always has big-endian words. Within those words the byte ordering - appears to be big or little endian. Newlib doesn't seem to care about - the byte ordering within words. */ + will be big or little endian depending upon the target. */ #define __IEEE_BIG_ENDIAN +#ifdef __ARMEL__ +#define __IEEE_BYTES_LITTLE_ENDIAN +#endif #endif #ifdef __hppa__ diff --git a/newlib/libc/stdlib/mprec.h b/newlib/libc/stdlib/mprec.h index 001f0c2..31d52e1 100644 --- a/newlib/libc/stdlib/mprec.h +++ b/newlib/libc/stdlib/mprec.h @@ -81,7 +81,7 @@ union double_union * An alternative that might be better on some machines is * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff) */ -#if defined(IEEE_8087) + defined(VAX) +#if defined (__IEEE_BYTES_LITTLE_ENDIAN) + defined (IEEE_8087) + defined (VAX) #define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \ ((unsigned short *)a)[0] = (unsigned short)c, a++) #else |