Using ARM inline assembly, how can I ask gcc to put a variable into a designated register?

LiMing myfavor_linux at msn.com
Thu Feb 11 03:01:56 EST 2010


Dear all,
 
Using ARM inline assembly, how can I ask gcc to put a variable into a designated  register?
For example: on X86 architechure,
 
int foo(int x, int y)
{
           int z = x + y;
 
           printf("foo:  x = %d  y= %d\n ", x, y);
           return z;
}
  
void call_foo(void)
{
         int result;
         int arg1 =1, arg2=2;         
 
         asm("foo" : "=r"(result) : "a"(arg1),"d"(arg2));
         printf("call_foo result = %d\n",result);       
}

In function call_foo, gcc will put arg1 into eax and arg2 into edx.
On ARM architechure, How can I ask arm gcc to put arg1 into r0 and arg2 into r1?
 
please help me what to do.
 
Regards,
 
Ming    
 		 	   		  
_________________________________________________________________
MSN十周年庆典,查看MSN注册时间,赢取神秘大奖
http://10.msn.com.cn


More information about the linux-arm mailing list