#include #include int main () { uint32_t cw; uint64_t f[32]; __asm__ volatile ("frsr %0":"=r" (cw)); printf ("cw = %08x\n", cw); __asm__ volatile ("fsd f0, 0(%0)\n\t" "fsd f1, 8(%0)\n\t" "fsd f2, 16(%0)\n\t" "fsd f3, 24(%0)\n\t" "fsd f4, 32(%0)\n\t" "fsd f5, 40(%0)\n\t" "fsd f6, 48(%0)\n\t" "fsd f7, 56(%0)\n\t" "fsd f8, 64(%0)\n\t" "fsd f9, 72(%0)\n\t" "fsd f10, 80(%0)\n\t" "fsd f11, 88(%0)\n\t" "fsd f12, 96(%0)\n\t" "fsd f13, 104(%0)\n\t" "fsd f14, 112(%0)\n\t" "fsd f15, 120(%0)\n\t" "fsd f16, 128(%0)\n\t" "fsd f17, 136(%0)\n\t" "fsd f18, 144(%0)\n\t" "fsd f19, 152(%0)\n\t" "fsd f20, 160(%0)\n\t" "fsd f21, 168(%0)\n\t" "fsd f22, 176(%0)\n\t" "fsd f23, 184(%0)\n\t" "fsd f24, 192(%0)\n\t" "fsd f25, 200(%0)\n\t" "fsd f26, 208(%0)\n\t" "fsd f27, 216(%0)\n\t" "fsd f28, 224(%0)\n\t" "fsd f29, 232(%0)\n\t" "fsd f30, 240(%0)\n\t" "fsd f31, 248(%0)\n\t" : :"r" (f) :"memory"); for (int i = 0; i < 31; i++) { printf ("f%02i = %016lx\n", i, f[i]); } }