Re: clobber list in inline assembly for calls

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Daniel Mierswa <impulze@xxxxxxxxxxx> writes:

> I was wondering which registers I have to clobber or which special
> strings I have to put into the clobber list if all I'm going to do is:
>
> asm("call %0;" ::"m"(addr_of_myfunc));
>
> As I can't tell what the function is doing I may have to clobber all
> registers or am I wrong?
> I had in mind to clobber "cc" plus "eax", "ecx", "edx" which are by the
> i386 ABI not preserved for the caller.

You are correct: you have to list all the caller-saved registers in the
clobber list.  On 32-bit x86 this is all the registers other than %ebp,
%ebx, %edi and %esi.

Ian


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux