1#ifndef QEMU_CPU_FLOAT_H 2#define QEMU_CPU_FLOAT_H 3 4#include "fpu/softfloat-types.h" 5 6/* Unions for reinterpreting between floats and integers. */ 7 8typedef union { 9 float32 f; 10 uint32_t l; 11} CPU_FloatU; 12 13typedef union { 14 float64 d; 15#if HOST_BIG_ENDIAN 16 struct { 17 uint32_t upper; 18 uint32_t lower; 19 } l; 20#else 21 struct { 22 uint32_t lower; 23 uint32_t upper; 24 } l; 25#endif 26 uint64_t ll; 27} CPU_DoubleU; 28 29typedef union { 30 floatx80 d; 31 struct { 32 uint64_t lower; 33 uint16_t upper; 34 } l; 35} CPU_LDoubleU; 36 37typedef union { 38 float128 q; 39#if HOST_BIG_ENDIAN 40 struct { 41 uint32_t upmost; 42 uint32_t upper; 43 uint32_t lower; 44 uint32_t lowest; 45 } l; 46 struct { 47 uint64_t upper; 48 uint64_t lower; 49 } ll; 50#else 51 struct { 52 uint32_t lowest; 53 uint32_t lower; 54 uint32_t upper; 55 uint32_t upmost; 56 } l; 57 struct { 58 uint64_t lower; 59 uint64_t upper; 60 } ll; 61#endif 62} CPU_QuadU; 63 64#endif /* QEMU_CPU_FLOAT_H */ 65