]> git.proxmox.com Git - mirror_qemu.git/blob - include/qemu/cpu-float.h
Merge tag 'tracing-pull-request' of https://gitlab.com/stefanha/qemu into staging
[mirror_qemu.git] / include / qemu / cpu-float.h
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
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
64 #endif /* QEMU_CPU_FLOAT_H */