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:
parent
ab97ad0806
commit
0a10f22a30
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
@ For FPA, float words are always big-endian.
|
@ For FPA, float words are always big-endian.
|
||||||
@ For VFP, floats words follow the memory system mode.
|
@ 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 xl r0
|
||||||
#define xh r1
|
#define xh r1
|
||||||
#define yl r2
|
#define yl r2
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* $FreeBSD$
|
* $FreeBSD$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(__VFP_FP__)
|
#if defined(__VFP_FP__) || defined(__ARM_EABI__)
|
||||||
#define _IEEE_WORD_ORDER _BYTE_ORDER
|
#define _IEEE_WORD_ORDER _BYTE_ORDER
|
||||||
#else
|
#else
|
||||||
#define _IEEE_WORD_ORDER _BIG_ENDIAN
|
#define _IEEE_WORD_ORDER _BIG_ENDIAN
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
* architecture. See contrib/gdtoa/gdtoaimp.h for details.
|
* 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 IEEE_8087
|
||||||
#define Arith_Kind_ASL 1
|
#define Arith_Kind_ASL 1
|
||||||
#define Sudden_Underflow
|
#define Sudden_Underflow
|
||||||
|
@ -91,7 +91,7 @@ what the endianness of the CPU. VFP is sane.
|
|||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
#if defined(SOFTFLOAT_FOR_GCC)
|
#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_DEMANGLE(a) (a)
|
||||||
#define FLOAT64_MANGLE(a) (a)
|
#define FLOAT64_MANGLE(a) (a)
|
||||||
#else
|
#else
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef __arm__
|
#ifdef __arm__
|
||||||
#if defined(__VFP_FP__)
|
#if defined(__VFP_FP__) || defined(__ARM_EABI__)
|
||||||
#define IEEE_WORD_ORDER BYTE_ORDER
|
#define IEEE_WORD_ORDER BYTE_ORDER
|
||||||
#else
|
#else
|
||||||
#define IEEE_WORD_ORDER BIG_ENDIAN
|
#define IEEE_WORD_ORDER BIG_ENDIAN
|
||||||
|
@ -91,7 +91,7 @@
|
|||||||
#define DBL_EXPBITS 11
|
#define DBL_EXPBITS 11
|
||||||
#define DBL_FRACBITS 52
|
#define DBL_FRACBITS 52
|
||||||
|
|
||||||
#if defined(__VFP_FP__)
|
#if defined(__VFP_FP__) || defined(__ARM_EABI__)
|
||||||
#define _IEEE_WORD_ORDER _BYTE_ORDER
|
#define _IEEE_WORD_ORDER _BYTE_ORDER
|
||||||
#else
|
#else
|
||||||
#define _IEEE_WORD_ORDER _BIG_ENDIAN
|
#define _IEEE_WORD_ORDER _BIG_ENDIAN
|
||||||
|
Loading…
x
Reference in New Issue
Block a user