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.
This commit is contained in:
Andrew Turner 2013-09-07 14:04:10 +00:00
parent ab97ad0806
commit 0a10f22a30
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=255361
6 changed files with 6 additions and 6 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -91,7 +91,7 @@ what the endianness of the CPU. VFP is sane.
-------------------------------------------------------------------------------
*/
#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

View File

@ -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

View File

@ -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