On Sat, Feb 18, 2012 at 1:01 AM, ratheesh kannoth <ratheesh.ksz@xxxxxxxxx> wrote: > 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 ). > Use the clobber list: http://ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#ss5.3 > > 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 */ : "eax","ecx","esi","edi" /* clobber */ > ); > } > -- > To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html