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