fgx.c revision b32f58018498ea2225959b0ba11c18f0c433deef
14df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner#include <stdio.h>
29769ab22265b313171d201b5928688524a01bd87Misha Brukman#include <string.h>
36fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell#include "opcodes.h"
46fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell
57ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattnerint main()
67ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner{
79769ab22265b313171d201b5928688524a01bd87Misha Brukman   register long g asm("r7");
86fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell   register double f asm("f8");
94df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   double f1;
104df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner
114df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   memset(&f1, 0x0f, sizeof(double));
121c56b730a6313886076d7b293a126ae5576f5288Chris Lattner   f = f1;
131c56b730a6313886076d7b293a126ae5576f5288Chris Lattner   g = 42;
144df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   printf("test LGDR\n\n");
154df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   printf("before g = %ld\n", g);
164df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   printf("before f = %a\n", f);
174df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   printf("copy f to g\n");
184df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   asm volatile ( LGDR(7,8) : "=d"(g) : "f"(f));
191c56b730a6313886076d7b293a126ae5576f5288Chris Lattner   printf("after  g = %16.16lx\n", g);  /* 0x0x0x0...... */
201c56b730a6313886076d7b293a126ae5576f5288Chris Lattner   printf("after  f = %a\n", f);
21e53e3772f3c8b4cba69b7d77c8b2148a080fe9aeDan Gohman
22e53e3772f3c8b4cba69b7d77c8b2148a080fe9aeDan Gohman   printf("\ntest LDGR\n\n");
23e53e3772f3c8b4cba69b7d77c8b2148a080fe9aeDan Gohman   f = 3.14;
241c56b730a6313886076d7b293a126ae5576f5288Chris Lattner   printf("before g = %16.16lx\n", g);  /* 0x0x0x0...... */
254df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   printf("before f = %a\n", f);
264df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   printf("copy g to f\n");
274df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   asm volatile ( LDGR(8,7) : "=f"(f) : "d"(g));
284df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   printf("after  g = %16.16lx\n", g);  /* 0x0x0x0...... */
294df22c0100fe27f19e6f4874f24eedd0742b9cf4Chris Lattner   printf("after  f = %a\n", f);
301c56b730a6313886076d7b293a126ae5576f5288Chris Lattner
3136f78c8935da34074ccd06d5674e45b9cd45da8bChris Lattner   return 0;
32d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke}
33d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke
34d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke