summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/arm/bits/endian.h
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/arm/bits/endian.h')
-rw-r--r--libc/sysdeps/linux/arm/bits/endian.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/libc/sysdeps/linux/arm/bits/endian.h b/libc/sysdeps/linux/arm/bits/endian.h
index 5e54cc753..1476881cb 100644
--- a/libc/sysdeps/linux/arm/bits/endian.h
+++ b/libc/sysdeps/linux/arm/bits/endian.h
@@ -1,12 +1,20 @@
-/* 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."
#endif
#ifdef __ARMEB__
-#define __BYTE_ORDER __BIG_ENDIAN
+# define __BYTE_ORDER __BIG_ENDIAN
#else
-#define __BYTE_ORDER __LITTLE_ENDIAN
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+#ifdef __VFP_FP__
+# define __FLOAT_WORD_ORDER __BYTE_ORDER
+#else
+# define __FLOAT_WORD_ORDER __BIG_ENDIAN
#endif
-#define __FLOAT_WORD_ORDER __BIG_ENDIAN