You can specify the name to be used in the assembler code for a C
function or variable by writing the
keyword after the declarator as follows:
int foo asm ("myfoo") = 2;
This specifies that the name to be used for the variable
the assembler code should be `myfoo' rather than the usual
On systems where an underscore is normally prepended to the name of a C function or variable, this feature allows you to define names for the linker that do not start with an underscore.
You cannot use
asm in this way in a function definition; but
you can get the same effect by writing a declaration for the function
before its definition and putting
asm there, like this:
extern func () asm ("FUNC"); func (x, y) int x, y; ...
It is up to you to make sure that the assembler names you choose do not conflict with any other assembler symbols. Also, you must not use a register name; that would produce completely invalid assembler code. GNU CC does not as yet have the ability to store static variables in registers. Perhaps that will be added.
Go to the first, previous, next, last section, table of contents.