Node: File Framework, Next: , Up: Assembler Format



The Overall Framework of an Assembler File

This describes the overall framework of an assembler file.

ASM_FILE_START (stream)
A C expression which outputs to the stdio stream stream some appropriate text to go at the start of an assembler file.

Normally this macro is defined to output a line containing #NO_APP, which is a comment that has no effect on most assemblers but tells the GNU assembler that it can save time by not checking for certain assembler constructs.

On systems that use SDB, it is necessary to output certain commands; see attasm.h.

ASM_FILE_END (stream)
A C expression which outputs to the stdio stream stream some appropriate text to go at the end of an assembler file.

If this macro is not defined, the default is to output nothing special at the end of the file. Most systems don't require any definition.

On systems that use SDB, it is necessary to output certain commands; see attasm.h.

ASM_COMMENT_START
A C string constant describing how to begin a comment in the target assembler language. The compiler assumes that the comment will end at the end of the line.
ASM_APP_ON
A C string constant for text to be output before each asm statement or group of consecutive ones. Normally this is "#APP", which is a comment that has no effect on most assemblers but tells the GNU assembler that it must check the lines that follow for all valid assembler constructs.
ASM_APP_OFF
A C string constant for text to be output after each asm statement or group of consecutive ones. Normally this is "#NO_APP", which tells the GNU assembler to resume making the time-saving assumptions that are valid for ordinary compiler output.
ASM_OUTPUT_SOURCE_FILENAME (stream, name)
A C statement to output COFF information or DWARF debugging information which indicates that filename name is the current source file to the stdio stream stream.

This macro need not be defined if the standard form of output for the file format in use is appropriate.

OUTPUT_QUOTED_STRING (stream, string)
A C statement to output the string string to the stdio stream stream. If you do not call the function output_quoted_string in your config files, GCC will only call it to output filenames to the assembler source. So you can use it to canonicalize the format of the filename using this macro.
ASM_OUTPUT_SOURCE_LINE (stream, line)
A C statement to output DBX or SDB debugging information before code for line number line of the current source file to the stdio stream stream.

This macro need not be defined if the standard form of debugging information for the debugger in use is appropriate.

ASM_OUTPUT_IDENT (stream, string)
A C statement to output something to the assembler file to handle a #ident directive containing the text string. If this macro is not defined, nothing is output for a #ident directive.
OBJC_PROLOGUE
A C statement to output any assembler statements which are required to precede any Objective-C object definitions or message sending. The statement is executed only when compiling an Objective-C program.

void TARGET_ASM_NAMED_SECTION (const char *name, unsigned int flags, unsigned int align) Target Hook
Output assembly directives to switch to section name. The section should have attributes as specified by flags, which is a bit mask of the SECTION_* flags defined in output.h. If align is nonzero, it contains an alignment in bytes to be used for the section, otherwise some target default should be used. Only targets that must specify an alignment within the section directive need pay attention to align - we will still use ASM_OUTPUT_ALIGN.

bool TARGET_HAVE_NAMED_SECTIONS Target Hook
This flag is true if the target supports TARGET_ASM_NAMED_SECTION.

unsigned int TARGET_SECTION_TYPE_FLAGS (tree decl, const char *name, int reloc) Target Hook
Choose a set of section attributes for use by TARGET_ASM_NAMED_SECTION based on a variable or function decl, a section name, and whether or not the declaration's initializer may contain runtime relocations. decl may be null, in which case read-write data should be assumed.

The default version if this function handles choosing code vs data, read-only vs read-write data, and flag_pic. You should only need to override this if your target has special flags that might be set via __attribute__.