[vlc-devel] [PATCH] handle the underscore prefix for some ARM ABI in arm_neon
david.geldreich at free.fr
Fri Apr 20 23:03:08 CEST 2012
Le 20 avr. 2012 à 22:15, Rafaël Carré a écrit :
> Le 2012-04-20 12:16, David Geldreich a écrit :
>> use a gcc extension (also supported by clang/llvm) which symbol is
>> associated with function
> Can you explain what it does?
Normally if you put a declaration :
extern void f(void);
a call to f() will access symbol f or _f depending of the ABI. As far as I know, the ARM ABI defines the way you pass parameters, which registers you should save/restore, but, as far as I understand it, the function naming seems to be left to the "OS" ABI.
using 'extern void f(void) asm("f");', the symbol f will always be used regardless of the ABI.
It could be "compared" as the way you avoid C++ mangling to call a C funcion by using :
extern "C" void f(void);
In vlc/modules/arm_neon, all functions are declared without the underscore.
In your example, you could use : extern void f(void) asm("foo"); to see the difference.
PS: Remi, thanks for the merge.
More information about the vlc-devel