Re: Making a direct function call from inline assembly

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

 



On 08/13/2010 10:25 AM, Job Noorman wrote:
> //file main.cpp
> void func() {}
> 
> int main()
> {
>     //this works but GCC generates an indirect call:
>     //    movl $_Z4funcv, %eax
>     //    call *%eax
>     asm("call *%0" : : "r"(func));
> 
>     //this is what I conceptually want to do but doesn't work because
>     //GCC generates
>     //    call $_Z4funcv
>     //which gives an error from the assembler:
>     //    main.cpp: Assembler messages:
>     //    main.cpp:20: Error: suffix or operands invalid for `call'
>     //I would like to find a way to make GCC generate the following:
>     //    call _Z4funcv
>     //(note there is no "$")
>     asm("call %0" : : "i"(func));
> }

    asm("call %P0" : : "i"(func));

Andrew.


[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