Making a direct function call from inline assembly

Bob Plantz plantz@cds1.net
Thu Aug 12 17:29:00 GMT 2010


On 08/12/2010 09:44 AM, Job Noorman wrote:
> Hi,
>
> I am trying to make a direct function call from inline assembly like this:
>
>      asm("call %0" : : "i"(func));
>
> This doesn't work because GCC will generate something like
>
>      call $mangledFunc
>
> which will give an assembly error.
> Is there a way to do this?
>
> Thanks in advance!
> Job
>
> PS: I know I can do something like
>
>      asm("call *%0" : : "r"(func));
>
> But then it's not a direct call anymore.
>
> PPS: I also posted this question on StackOverflow:
> http://stackoverflow.com/questions/3467180/direct-call-using-gccs-inline-
> assembly
>    
Are you simply trying to do:

     asm("call func");

That produces the assembly language (using -S option to gcc):
     call func

--Bob



More information about the Gcc-help mailing list