1 struct A { unsigned long buf[100]; }; foo(unsigned int * x)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