svn commit: r255361 - in head: contrib/gcc/config/arm lib/libc/arm lib/libc/arm/softfloat lib/msun/src sys/arm/include
Andrew Turner
andrew at FreeBSD.org
Sat Sep 7 14:04:12 UTC 2013
Author: andrew
Date: Sat Sep 7 14:04:10 2013
New Revision: 255361
URL: http://svnweb.freebsd.org/changeset/base/255361
Log:
On ARM EABI double precision floating point values are stored in the
endian the CPU is in, i.e. little-endian on most ARM cores.
This allows ARMv4 and ARMv5 boards to boot with the ARM EABI.
Modified:
head/contrib/gcc/config/arm/ieee754-df.S
head/lib/libc/arm/_fpmath.h
head/lib/libc/arm/arith.h
head/lib/libc/arm/softfloat/arm-gcc.h
head/lib/msun/src/math_private.h
head/sys/arm/include/ieee.h
Modified: head/contrib/gcc/config/arm/ieee754-df.S
==============================================================================
--- head/contrib/gcc/config/arm/ieee754-df.S Sat Sep 7 13:50:13 2013 (r255360)
+++ head/contrib/gcc/config/arm/ieee754-df.S Sat Sep 7 14:04:10 2013 (r255361)
@@ -43,7 +43,7 @@
@ For FPA, float words are always big-endian.
@ For VFP, floats words follow the memory system mode.
-#if defined(__VFP_FP__) && !defined(__ARMEB__)
+#if (defined(__ARM_EABI__) || defined(__VFP_FP__)) && !defined(__ARMEB__)
#define xl r0
#define xh r1
#define yl r2
Modified: head/lib/libc/arm/_fpmath.h
==============================================================================
--- head/lib/libc/arm/_fpmath.h Sat Sep 7 13:50:13 2013 (r255360)
+++ head/lib/libc/arm/_fpmath.h Sat Sep 7 14:04:10 2013 (r255361)
@@ -26,7 +26,7 @@
* $FreeBSD$
*/
-#if defined(__VFP_FP__)
+#if defined(__VFP_FP__) || defined(__ARM_EABI__)
#define _IEEE_WORD_ORDER _BYTE_ORDER
#else
#define _IEEE_WORD_ORDER _BIG_ENDIAN
Modified: head/lib/libc/arm/arith.h
==============================================================================
--- head/lib/libc/arm/arith.h Sat Sep 7 13:50:13 2013 (r255360)
+++ head/lib/libc/arm/arith.h Sat Sep 7 14:04:10 2013 (r255361)
@@ -11,7 +11,7 @@
* architecture. See contrib/gdtoa/gdtoaimp.h for details.
*/
-#if !defined(__ARMEB__) && defined(__VFP_FP__)
+#if !defined(__ARMEB__) && (defined(__VFP_FP__) || defined(__ARM_EABI__))
#define IEEE_8087
#define Arith_Kind_ASL 1
#define Sudden_Underflow
Modified: head/lib/libc/arm/softfloat/arm-gcc.h
==============================================================================
--- head/lib/libc/arm/softfloat/arm-gcc.h Sat Sep 7 13:50:13 2013 (r255360)
+++ head/lib/libc/arm/softfloat/arm-gcc.h Sat Sep 7 14:04:10 2013 (r255361)
@@ -91,7 +91,7 @@ what the endianness of the CPU. VFP is
-------------------------------------------------------------------------------
*/
#if defined(SOFTFLOAT_FOR_GCC)
-#if defined(__VFP_FP__) || defined(__ARMEB__)
+#if defined (__ARM_EABI__) || defined(__VFP_FP__) || defined(__ARMEB__)
#define FLOAT64_DEMANGLE(a) (a)
#define FLOAT64_MANGLE(a) (a)
#else
Modified: head/lib/msun/src/math_private.h
==============================================================================
--- head/lib/msun/src/math_private.h Sat Sep 7 13:50:13 2013 (r255360)
+++ head/lib/msun/src/math_private.h Sat Sep 7 14:04:10 2013 (r255361)
@@ -39,7 +39,7 @@
*/
#ifdef __arm__
-#if defined(__VFP_FP__)
+#if defined(__VFP_FP__) || defined(__ARM_EABI__)
#define IEEE_WORD_ORDER BYTE_ORDER
#else
#define IEEE_WORD_ORDER BIG_ENDIAN
Modified: head/sys/arm/include/ieee.h
==============================================================================
--- head/sys/arm/include/ieee.h Sat Sep 7 13:50:13 2013 (r255360)
+++ head/sys/arm/include/ieee.h Sat Sep 7 14:04:10 2013 (r255361)
@@ -91,7 +91,7 @@
#define DBL_EXPBITS 11
#define DBL_FRACBITS 52
-#if defined(__VFP_FP__)
+#if defined(__VFP_FP__) || defined(__ARM_EABI__)
#define _IEEE_WORD_ORDER _BYTE_ORDER
#else
#define _IEEE_WORD_ORDER _BIG_ENDIAN
More information about the svn-src-all
mailing list