6 struct alignas(16) float80_raw
{
22 #if defined(__x86_64__)
38 : "a"(st
), "m"(env
), "m"(fxsave
)
42 assert(env
[0] == fxsave
.i16
[0]);
43 assert(env
[2] == fxsave
.i16
[1]);
45 printf("fctrl = 0x%04" PRIx16
"\n", env
[0]);
46 printf("fstat = 0x%04" PRIx16
"\n", env
[2]);
47 printf("ftag = 0x%04" PRIx16
"\n", env
[4]);
48 printf("fop = 0x%04" PRIx16
"\n", fxsave
.i16
[3]);
49 #if defined(__x86_64__)
50 printf("fip = 0x%016" PRIx64
"\n", fxsave
.i64
[1]);
51 printf("fdp = 0x%016" PRIx64
"\n", fxsave
.i64
[2]);
53 printf("fip = 0x%08" PRIx32
"\n", fxsave
.i32
[2]);
54 printf("fcs = 0x%04" PRIx16
"\n", fxsave
.i16
[6]);
55 printf("fdp = 0x%08" PRIx32
"\n", fxsave
.i32
[4]);
56 printf("fds = 0x%04" PRIx16
"\n", fxsave
.i16
[10]);
58 printf("mxcsr = 0x%08" PRIx32
"\n", fxsave
.i32
[6]);
59 printf("mxcsr_mask = 0x%08" PRIx32
"\n", fxsave
.i32
[7]);
61 for (int i
= 0; i
< 8; ++i
) {
62 printf("st%d = { ", i
);
63 for (int j
= 0; j
< sizeof(st
->data
); ++j
)
64 printf("0x%02" PRIx8
" ", st
[i
].data
[j
]);