From e627587cec42ab167884081390629923d8be2011 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Thu, 4 Aug 2005 22:35:13 +0000 Subject: yvasilev writes in Bug 235: uClibc uses wrong word order in vfp floating point arithmetic. I found this using my modification to N. Pitre's soft-float gcc patch, but this modifications were made just to allow gcc to compile code for armv4l, while nothing about fp arithmetic was changed. --- libc/sysdeps/linux/arm/bits/endian.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'libc/sysdeps/linux') diff --git a/libc/sysdeps/linux/arm/bits/endian.h b/libc/sysdeps/linux/arm/bits/endian.h index 5e54cc753..14cd5c603 100644 --- a/libc/sysdeps/linux/arm/bits/endian.h +++ b/libc/sysdeps/linux/arm/bits/endian.h @@ -1,4 +1,7 @@ -/* ARM is (usually) little-endian but with a big-endian FPU. */ +/* ARM is (usually) little-endian. + * Older FPU style (FPA) is always big-endian. + * Newer FPU style (VFP) is same as host byte-order. + */ #ifndef _ENDIAN_H # error "Never use directly; include instead." @@ -9,4 +12,8 @@ #else #define __BYTE_ORDER __LITTLE_ENDIAN #endif +#ifdef __VFP_FP__ +#define __FLOAT_WORD_ORDER __BYTE_ORDER +#else #define __FLOAT_WORD_ORDER __BIG_ENDIAN +#endif -- cgit v1.2.3