- Subject: c inline assembly
- From: ratheesh kannoth <ratheesh.ksz@xxxxxxxxx>
- Date: Sat, 18 Feb 2012 11:31:12 +0530
- Authentication-results: mr.google.com; spf=pass (google.com: domain of ratheesh.ksz@xxxxxxxxx designates 10.112.98.103 as permitted sender) smtp.mail=ratheesh.ksz@xxxxxxxxx; dkim=pass header.i=ratheesh.ksz@xxxxxxxxx
- In-reply-to: <CAGZFCEEaJ7ZsNAmWCF-nDtsjs70U7fqEVvTXEaCt9Tmk1dcemQ@mail.gmail.com>
- List-id: <linux-c-programming.vger.kernel.org>
- References: <CAGZFCEEaJ7ZsNAmWCF-nDtsjs70U7fqEVvTXEaCt9Tmk1dcemQ@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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux Assembler]
[Git]
[Kernel List]
[Fedora Development]
[Fedora Announce]
[Autoconf]
[Yosemite Campsites]
[Yosemite News]
[GCC Help]