* doc/as.texinfo (Pseudo Ops): Swap order of Comm and CFI menu entries.

(Altmacro, Comm, Loc, Loc_mark_labels, List, MRI, PopSection, Sleb128):
	Moved into alphabetical order.
This commit is contained in:
Bob Wilson 2008-10-09 18:12:29 +00:00
parent 884f0d36b4
commit ccf8a69b9c
2 changed files with 161 additions and 157 deletions

View File

@ -1,3 +1,9 @@
2008-10-09 Bob Wilson <bob.wilson@acm.org>
* doc/as.texinfo (Pseudo Ops): Swap order of Comm and CFI menu entries.
(Altmacro, Comm, Loc, Loc_mark_labels, List, MRI, PopSection, Sleb128):
Moved into alphabetical order.
2008-10-09 Bob Wilson <bob.wilson@acm.org> 2008-10-09 Bob Wilson <bob.wilson@acm.org>
* doc/as.texinfo (Dot): Expand no-space-dir conditional to include * doc/as.texinfo (Dot): Expand no-space-dir conditional to include

View File

@ -3808,10 +3808,8 @@ Some machine configurations provide additional directives.
* Asciz:: @code{.asciz "@var{string}"}@dots{} * Asciz:: @code{.asciz "@var{string}"}@dots{}
* Balign:: @code{.balign @var{abs-expr} , @var{abs-expr}} * Balign:: @code{.balign @var{abs-expr} , @var{abs-expr}}
* Byte:: @code{.byte @var{expressions}} * Byte:: @code{.byte @var{expressions}}
* Comm:: @code{.comm @var{symbol} , @var{length} }
* CFI directives:: @code{.cfi_startproc [simple]}, @code{.cfi_endproc}, etc. * CFI directives:: @code{.cfi_startproc [simple]}, @code{.cfi_endproc}, etc.
* Comm:: @code{.comm @var{symbol} , @var{length} }
* Data:: @code{.data @var{subsection}} * Data:: @code{.data @var{subsection}}
@ifset COFF @ifset COFF
* Def:: @code{.def @var{name}} * Def:: @code{.def @var{name}}
@ -4040,6 +4038,42 @@ GAS also provides @code{.balign} and @code{.p2align} directives,
described later, which have a consistent behavior across all described later, which have a consistent behavior across all
architectures (but are specific to GAS). architectures (but are specific to GAS).
@node Altmacro
@section @code{.altmacro}
Enable alternate macro mode, enabling:
@ftable @code
@item LOCAL @var{name} [ , @dots{} ]
One additional directive, @code{LOCAL}, is available. It is used to
generate a string replacement for each of the @var{name} arguments, and
replace any instances of @var{name} in each macro expansion. The
replacement string is unique in the assembly, and different for each
separate macro expansion. @code{LOCAL} allows you to write macros that
define symbols, without fear of conflict between separate macro expansions.
@item String delimiters
You can write strings delimited in these other ways besides
@code{"@var{string}"}:
@table @code
@item '@var{string}'
You can delimit strings with single-quote characters.
@item <@var{string}>
You can delimit strings with matching angle brackets.
@end table
@item single-character string escape
To include any single character literally in a string (even if the
character would otherwise have some special meaning), you can prefix the
character with @samp{!} (an exclamation mark). For example, you can
write @samp{<4.3 !> 5.4!!>} to get the literal text @samp{4.3 > 5.4!}.
@item Expression results as strings
You can write @samp{%@var{expr}} to evaluate the expression @var{expr}
and use the result as a string.
@end ftable
@node Ascii @node Ascii
@section @code{.ascii "@var{string}"}@dots{} @section @code{.ascii "@var{string}"}@dots{}
@ -4102,37 +4136,6 @@ undefined.
@code{.byte} expects zero or more expressions, separated by commas. @code{.byte} expects zero or more expressions, separated by commas.
Each expression is assembled into the next byte. Each expression is assembled into the next byte.
@node Comm
@section @code{.comm @var{symbol} , @var{length} }
@cindex @code{comm} directive
@cindex symbol, common
@code{.comm} declares a common symbol named @var{symbol}. When linking, a
common symbol in one object file may be merged with a defined or common symbol
of the same name in another object file. If @code{@value{LD}} does not see a
definition for the symbol--just one or more common symbols--then it will
allocate @var{length} bytes of uninitialized memory. @var{length} must be an
absolute expression. If @code{@value{LD}} sees multiple common symbols with
the same name, and they do not all have the same size, it will allocate space
using the largest size.
@ifset ELF
When using ELF, the @code{.comm} directive takes an optional third argument.
This is the desired alignment of the symbol, specified as a byte boundary (for
example, an alignment of 16 means that the least significant 4 bits of the
address should be zero). The alignment must be an absolute expression, and it
must be a power of two. If @code{@value{LD}} allocates uninitialized memory
for the common symbol, it will use the alignment when placing the symbol. If
no alignment is specified, @command{@value{AS}} will set the alignment to the
largest power of two less than or equal to the size of the symbol, up to a
maximum of 16.
@end ifset
@ifset HPPA
The syntax for @code{.comm} differs slightly on the HPPA. The syntax is
@samp{@var{symbol} .comm, @var{length}}; @var{symbol} is optional.
@end ifset
@node CFI directives @node CFI directives
@section @code{.cfi_startproc [simple]} @section @code{.cfi_startproc [simple]}
@cindex @code{cfi_startproc} directive @cindex @code{cfi_startproc} directive
@ -4246,51 +4249,36 @@ mark a code segment that has only one return address which is reached
by a direct branch and no copy of the return address exists in memory by a direct branch and no copy of the return address exists in memory
or another register. or another register.
@node Loc @node Comm
@section @code{.loc @var{fileno} @var{lineno} [@var{column}] [@var{options}]} @section @code{.comm @var{symbol} , @var{length} }
@cindex @code{loc} directive
When emitting DWARF2 line number information,
the @code{.loc} directive will add a row to the @code{.debug_line} line
number matrix corresponding to the immediately following assembly
instruction. The @var{fileno}, @var{lineno}, and optional @var{column}
arguments will be applied to the @code{.debug_line} state machine before
the row is added.
The @var{options} are a sequence of the following tokens in any order: @cindex @code{comm} directive
@cindex symbol, common
@code{.comm} declares a common symbol named @var{symbol}. When linking, a
common symbol in one object file may be merged with a defined or common symbol
of the same name in another object file. If @code{@value{LD}} does not see a
definition for the symbol--just one or more common symbols--then it will
allocate @var{length} bytes of uninitialized memory. @var{length} must be an
absolute expression. If @code{@value{LD}} sees multiple common symbols with
the same name, and they do not all have the same size, it will allocate space
using the largest size.
@table @code @ifset ELF
@item basic_block When using ELF, the @code{.comm} directive takes an optional third argument.
This option will set the @code{basic_block} register in the This is the desired alignment of the symbol, specified as a byte boundary (for
@code{.debug_line} state machine to @code{true}. example, an alignment of 16 means that the least significant 4 bits of the
address should be zero). The alignment must be an absolute expression, and it
must be a power of two. If @code{@value{LD}} allocates uninitialized memory
for the common symbol, it will use the alignment when placing the symbol. If
no alignment is specified, @command{@value{AS}} will set the alignment to the
largest power of two less than or equal to the size of the symbol, up to a
maximum of 16.
@end ifset
@item prologue_end @ifset HPPA
This option will set the @code{prologue_end} register in the The syntax for @code{.comm} differs slightly on the HPPA. The syntax is
@code{.debug_line} state machine to @code{true}. @samp{@var{symbol} .comm, @var{length}}; @var{symbol} is optional.
@end ifset
@item epilogue_begin
This option will set the @code{epilogue_begin} register in the
@code{.debug_line} state machine to @code{true}.
@item is_stmt @var{value}
This option will set the @code{is_stmt} register in the
@code{.debug_line} state machine to @code{value}, which must be
either 0 or 1.
@item isa @var{value}
This directive will set the @code{isa} register in the @code{.debug_line}
state machine to @var{value}, which must be an unsigned integer.
@end table
@node Loc_mark_labels
@section @code{.loc_mark_labels @var{enable}}
@cindex @code{loc_mark_labels} directive
When emitting DWARF2 line number information,
the @code{.loc_mark_labels} directive makes the assembler emit an entry
to the @code{.debug_line} line number matrix with the @code{basic_block}
register in the state machine set whenever a code label is seen.
The @var{enable} argument should be either 1 or 0, to enable or disable
this function respectively.
@node Data @node Data
@section @code{.data @var{subsection}} @section @code{.data @var{subsection}}
@ -5005,6 +4993,21 @@ Warn if any of the duplicates have different sizes.
Warn if any of the duplicates do not have exactly the same contents. Warn if any of the duplicates do not have exactly the same contents.
@end table @end table
@node List
@section @code{.list}
@cindex @code{list} directive
@cindex listing control, turning on
Control (in conjunction with the @code{.nolist} directive) whether or
not assembly listings are generated. These two directives maintain an
internal counter (which is zero initially). @code{.list} increments the
counter, and @code{.nolist} decrements it. Assembly listings are
generated whenever the counter is greater than zero.
By default, listings are disabled. When you enable them (with the
@samp{-a} command line option; @pxref{Invoking,,Command-Line Options}),
the initial value of the listing counter is one.
@node Ln @node Ln
@section @code{.ln @var{line-number}} @section @code{.ln @var{line-number}}
@ -5026,15 +5029,51 @@ output format.
@end ifset @end ifset
@end ifset @end ifset
@node MRI @node Loc
@section @code{.mri @var{val}} @section @code{.loc @var{fileno} @var{lineno} [@var{column}] [@var{options}]}
@cindex @code{loc} directive
When emitting DWARF2 line number information,
the @code{.loc} directive will add a row to the @code{.debug_line} line
number matrix corresponding to the immediately following assembly
instruction. The @var{fileno}, @var{lineno}, and optional @var{column}
arguments will be applied to the @code{.debug_line} state machine before
the row is added.
@cindex @code{mri} directive The @var{options} are a sequence of the following tokens in any order:
@cindex MRI mode, temporarily
If @var{val} is non-zero, this tells @command{@value{AS}} to enter MRI mode. If @table @code
@var{val} is zero, this tells @command{@value{AS}} to exit MRI mode. This change @item basic_block
affects code assembled until the next @code{.mri} directive, or until the end This option will set the @code{basic_block} register in the
of the file. @xref{M, MRI mode, MRI mode}. @code{.debug_line} state machine to @code{true}.
@item prologue_end
This option will set the @code{prologue_end} register in the
@code{.debug_line} state machine to @code{true}.
@item epilogue_begin
This option will set the @code{epilogue_begin} register in the
@code{.debug_line} state machine to @code{true}.
@item is_stmt @var{value}
This option will set the @code{is_stmt} register in the
@code{.debug_line} state machine to @code{value}, which must be
either 0 or 1.
@item isa @var{value}
This directive will set the @code{isa} register in the @code{.debug_line}
state machine to @var{value}, which must be an unsigned integer.
@end table
@node Loc_mark_labels
@section @code{.loc_mark_labels @var{enable}}
@cindex @code{loc_mark_labels} directive
When emitting DWARF2 line number information,
the @code{.loc_mark_labels} directive makes the assembler emit an entry
to the @code{.debug_line} line number matrix with the @code{basic_block}
register in the state machine set whenever a code label is seen.
The @var{enable} argument should be either 1 or 0, to enable or disable
this function respectively.
@ifset ELF @ifset ELF
@node Local @node Local
@ -5052,21 +5091,6 @@ the @code{.local} directive can be used in combination with @code{.comm}
(@pxref{Comm}) to define aligned local common data. (@pxref{Comm}) to define aligned local common data.
@end ifset @end ifset
@node List
@section @code{.list}
@cindex @code{list} directive
@cindex listing control, turning on
Control (in conjunction with the @code{.nolist} directive) whether or
not assembly listings are generated. These two directives maintain an
internal counter (which is zero initially). @code{.list} increments the
counter, and @code{.nolist} decrements it. Assembly listings are
generated whenever the counter is greater than zero.
By default, listings are disabled. When you enable them (with the
@samp{-a} command line option; @pxref{Invoking,,Command-Line Options}),
the initial value of the listing counter is one.
@node Long @node Long
@section @code{.long @var{expressions}} @section @code{.long @var{expressions}}
@ -5268,41 +5292,15 @@ macro syntax'' with @samp{--alternate} or @code{.altmacro}.}
@xref{Altmacro,,@code{.altmacro}}. @xref{Altmacro,,@code{.altmacro}}.
@end ftable @end ftable
@node Altmacro @node MRI
@section @code{.altmacro} @section @code{.mri @var{val}}
Enable alternate macro mode, enabling:
@ftable @code @cindex @code{mri} directive
@item LOCAL @var{name} [ , @dots{} ] @cindex MRI mode, temporarily
One additional directive, @code{LOCAL}, is available. It is used to If @var{val} is non-zero, this tells @command{@value{AS}} to enter MRI mode. If
generate a string replacement for each of the @var{name} arguments, and @var{val} is zero, this tells @command{@value{AS}} to exit MRI mode. This change
replace any instances of @var{name} in each macro expansion. The affects code assembled until the next @code{.mri} directive, or until the end
replacement string is unique in the assembly, and different for each of the file. @xref{M, MRI mode, MRI mode}.
separate macro expansion. @code{LOCAL} allows you to write macros that
define symbols, without fear of conflict between separate macro expansions.
@item String delimiters
You can write strings delimited in these other ways besides
@code{"@var{string}"}:
@table @code
@item '@var{string}'
You can delimit strings with single-quote characters.
@item <@var{string}>
You can delimit strings with matching angle brackets.
@end table
@item single-character string escape
To include any single character literally in a string (even if the
character would otherwise have some special meaning), you can prefix the
character with @samp{!} (an exclamation mark). For example, you can
write @samp{<4.3 !> 5.4!!>} to get the literal text @samp{4.3 > 5.4!}.
@item Expression results as strings
You can write @samp{%@var{expr}} to evaluate the expression @var{expr}
and use the result as a string.
@end ftable
@node Noaltmacro @node Noaltmacro
@section @code{.noaltmacro} @section @code{.noaltmacro}
@ -5405,6 +5403,22 @@ filled in with the value 0x368d (the exact placement of the bytes depends upon
the endianness of the processor). If it skips 1 or 3 bytes, the fill value is the endianness of the processor). If it skips 1 or 3 bytes, the fill value is
undefined. undefined.
@ifset ELF
@node PopSection
@section @code{.popsection}
@cindex @code{popsection} directive
@cindex Section Stack
This is one of the ELF section stack manipulation directives. The others are
@code{.section} (@pxref{Section}), @code{.subsection} (@pxref{SubSection}),
@code{.pushsection} (@pxref{PushSection}), and @code{.previous}
(@pxref{Previous}).
This directive replaces the current section (and subsection) with the top
section (and subsection) on the section stack. This section is popped off the
stack.
@end ifset
@ifset ELF @ifset ELF
@node Previous @node Previous
@section @code{.previous} @section @code{.previous}
@ -5458,22 +5472,6 @@ In terms of the section stack, this directive swaps the current section with
the top section on the section stack. the top section on the section stack.
@end ifset @end ifset
@ifset ELF
@node PopSection
@section @code{.popsection}
@cindex @code{popsection} directive
@cindex Section Stack
This is one of the ELF section stack manipulation directives. The others are
@code{.section} (@pxref{Section}), @code{.subsection} (@pxref{SubSection}),
@code{.pushsection} (@pxref{PushSection}), and @code{.previous}
(@pxref{Previous}).
This directive replaces the current section (and subsection) with the top
section (and subsection) on the section stack. This section is popped off the
stack.
@end ifset
@node Print @node Print
@section @code{.print @var{string}} @section @code{.print @var{string}}
@ -5931,14 +5929,6 @@ symbols.
@end ifset @end ifset
@end ifset @end ifset
@node Sleb128
@section @code{.sleb128 @var{expressions}}
@cindex @code{sleb128} directive
@var{sleb128} stands for ``signed little endian base 128.'' This is a
compact, variable length representation of numbers used by the DWARF
symbolic debugging format. @xref{Uleb128, ,@code{.uleb128}}.
@ifclear no-space-dir @ifclear no-space-dir
@node Skip @node Skip
@section @code{.skip @var{size} , @var{fill}} @section @code{.skip @var{size} , @var{fill}}
@ -5951,6 +5941,14 @@ This directive emits @var{size} bytes, each of value @var{fill}. Both
@samp{.space}. @samp{.space}.
@end ifclear @end ifclear
@node Sleb128
@section @code{.sleb128 @var{expressions}}
@cindex @code{sleb128} directive
@var{sleb128} stands for ``signed little endian base 128.'' This is a
compact, variable length representation of numbers used by the DWARF
symbolic debugging format. @xref{Uleb128, ,@code{.uleb128}}.
@ifclear no-space-dir @ifclear no-space-dir
@node Space @node Space
@section @code{.space @var{size} , @var{fill}} @section @code{.space @var{size} , @var{fill}}