瀏覽代碼

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 年之前
父節點
當前提交
e627587cec
共有 1 個文件被更改,包括 8 次插入1 次删除
  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