1struct A { unsigned long buf[100]; }; 2int foo(unsigned int *x) 3{ 4 unsigned int a; 5 6 if (!x) 7 return -22; 8 9#ifdef __ia64__ 10 if (({ 11 register long b asm ("r8") = 0; 12 register long c asm ("r9") = 0; 13 asm ("" : "=r"(c), "=r"(b) : "m"(*(struct A *)x), "1"(b)); 14 a = (unsigned int) c; 15 b; })) 16 return -14; 17#endif 18 19 return 0; 20} 21