Next: Data Output, Up: Assembler Format
This describes the overall framework of an assembler file.
ASM_FILE_START (
stream)
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)
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
ASM_APP_ON
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
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)
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)
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)
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)
OBJC_PROLOGUE
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 useASM_OUTPUT_ALIGN
.
This flag is true if the target supports
TARGET_ASM_NAMED_SECTION
.
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__
.