]>
Commit | Line | Data |
---|---|---|
9c092804 MA |
1 | #ifndef QEMU_CPU_FLOAT_H |
2 | #define QEMU_CPU_FLOAT_H | |
69242e7e MAL |
3 | |
4 | #include "fpu/softfloat-types.h" | |
5 | ||
6 | /* Unions for reinterpreting between floats and integers. */ | |
7 | ||
8 | typedef union { | |
9 | float32 f; | |
10 | uint32_t l; | |
11 | } CPU_FloatU; | |
12 | ||
13 | typedef 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 | ||
29 | typedef union { | |
30 | floatx80 d; | |
31 | struct { | |
32 | uint64_t lower; | |
33 | uint16_t upper; | |
34 | } l; | |
35 | } CPU_LDoubleU; | |
36 | ||
37 | typedef 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 | ||
9c092804 | 64 | #endif /* QEMU_CPU_FLOAT_H */ |