c inline assembly

ratheesh kannoth <[email protected]> Sat, 18 Feb 2012 11:31:12 +0530
Newsgroups org.kernel.vger.linux-c-programming
Message-ID <CAGZFCEH_NWJQid+DgOGrDp0nAS6odH2fLamT1k-vWP1ceAiMzQ@mail.gmail.com>
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 */
 );
}
--
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html