c inline assembly

ratheesh kannoth ratheesh.ksz@gmail.com
Sat Feb 18 06:01:00 GMT 2012


I am using gcc on a 32bit  intel machine.  i have defined an inline function.


This function is inline .  what all registers needs to pushed and
poped in the inline assembly so that the functions wont
disturb the registers in  the function ( in which it is C inlined  ).


inline unsigned long hello(unsigned long a)

{
 int b;
 asm ("movl %1, %%eax;
      " movl %1, %%ebx;
       "movl  %1, %%ecx;
       "movl  %1, %%esi;
       "movl  %1, %%edi;

       "movl %%eax, %0;"
       :"=r"(b)        /* output */
       :"r"(a)         /* input */
 );
}



More information about the Gcc-help mailing list