32#if defined(__aarch64__)
34#elif defined(__i386__) || defined(__x86_64__) || defined(_M_X64 ) || defined(_M_IX86 )
40#elif defined(__powerpc__)
42#elif defined(__mips__)
44#elif defined(__s390__)
51#if !(defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__))
57#define __ORDER_LITTLE_ENDIAN__ __LITTLE_ENDIAN
58#define __ORDER_BIG_ENDIAN__ __BIG_ENDIAN
59#define __BYTE_ORDER__ __BYTE_ORDER
61#elif defined(__APPLE__)
63#include <machine/endian.h>
64#define __ORDER_LITTLE_ENDIAN__ LITTLE_ENDIAN
65#define __ORDER_BIG_ENDIAN__ BIG_ENDIAN
66#define __BYTE_ORDER__ BYTE_ORDER
70#define __ORDER_LITTLE_ENDIAN__ 1234
71#define __ORDER_BIG_ENDIAN__ 4321
72#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
74#elif defined (__ICCARM__)
76#define __ORDER_LITTLE_ENDIAN__ 1234
77#define __ORDER_BIG_ENDIAN__ 4321
78#if defined(__LITTLE_ENDIAN__)
79#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
81#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__
86#error no compatible compiler detected
92#ifndef __FLOAT_WORD_ORDER__
93#define __FLOAT_WORD_ORDER__ __BYTE_ORDER__
96#if __FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__
97#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
98#error "word order is ambiguous" __FLOAT_WORD_ORDER__
105#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
110 unsigned int sign :1;
112 unsigned int man :23;
117#define DBL_MANH_SIZE 20
118#define DBL_MANL_SIZE 32
123#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
124#if __FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__
130#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
131 unsigned int manl :32;
134 unsigned int sign :1;
135 unsigned int exp :11;
136 unsigned int manh :20;
137 unsigned int manl :32;
struct IEEEd2bits::@7 bits
struct IEEEf2bits::@6 bits