Browse Source

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.

Mike Frysinger 20 years ago
parent
commit
e627587cec
1 changed files with 8 additions and 1 deletions
  1. 8 1
      libc/sysdeps/linux/arm/bits/endian.h

+ 8 - 1
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 <bits/endian.h> directly; include <endian.h> 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