Silence ARI warning about floatformat_to_double
[deliverable/binutils-gdb.git] / gas / doc / c-xtensa.texi
index e763e368f30186dbaa07a219583b945ebf5c839f..3fb020dd3240501d946a1d87ea95ba675d8bf9ab 100644 (file)
@@ -1,4 +1,4 @@
-@c Copyright (C) 2002-2014 Free Software Foundation, Inc.
+@c Copyright (C) 2002-2019 Free Software Foundation, Inc.
 @c This is part of the GAS manual.
 @c For copying conditions, see the file as.texinfo.
 @c
@@ -28,7 +28,7 @@ Reference Manual}.
 @end menu
 
 @node Xtensa Options
-@section Command Line Options
+@section Command-line Options
 
 @c man begin OPTIONS
 @table @gcctabopt
@@ -43,9 +43,30 @@ placed in a data RAM/ROM.  With @samp{--text-@-section-@-literals}, the
 literals are interspersed in the text section in order to keep them as
 close as possible to their references.  This may be necessary for large
 assembly files, where the literals would otherwise be out of range of the
-@code{L32R} instructions in the text section.  These options only affect
+@code{L32R} instructions in the text section.  Literals are grouped into
+pools following @code{.literal_position} directives or preceding
+@code{ENTRY} instructions.  These options only affect literals referenced
+via PC-relative @code{L32R} instructions; literals for absolute mode
+@code{L32R} instructions are handled separately.
+@xref{Literal Directive, ,literal}.
+
+@item --auto-litpools | --no-auto-litpools
+@kindex --auto-litpools
+@kindex --no-auto-litpools
+Control the treatment of literal pools.  The default is
+@samp{--no-@-auto-@-litpools}, which in the absence of
+@samp{--text-@-section-@-literals} places literals in separate sections
+in the output file.  This allows the literal pool to be placed in a data
+RAM/ROM.  With @samp{--auto-@-litpools}, the literals are interspersed
+in the text section in order to keep them as close as possible to their
+references, explicit @code{.literal_position} directives are not
+required.  This may be necessary for very large functions, where single
+literal pool at the beginning of the function may not be reachable by
+@code{L32R} instructions at the end.  These options only affect
 literals referenced via PC-relative @code{L32R} instructions; literals
 for absolute mode @code{L32R} instructions are handled separately.
+When used together with @samp{--text-@-section-@-literals},
+@samp{--auto-@-litpools} takes precedence.
 @xref{Literal Directive, ,literal}.
 
 @item --absolute-literals | --no-absolute-literals
@@ -275,7 +296,7 @@ call.  This alignment has the potential to reduce branch penalties at
 some expense in code size.
 This optimization is enabled by default.  You can disable it with the
 @samp{--no-target-@-align} command-line option (@pxref{Xtensa Options,
-,Command Line Options}).
+,Command-line Options}).
 
 The target alignment optimization is done without adding instructions
 that could increase the execution time of the program.  If there are
@@ -362,7 +383,7 @@ unconditional jump to a target that is out of range.
 Branch relaxation is enabled by default.  It can be disabled by using
 underscore prefixes (@pxref{Xtensa Opcodes, ,Opcode Names}), the
 @samp{--no-transform} command-line option (@pxref{Xtensa Options,
-,Command Line Options}), or the @code{no-transform} directive
+,Command-line Options}), or the @code{no-transform} directive
 (@pxref{Transform Directive, ,transform}).
 
 @node Xtensa Call Relaxation
@@ -478,7 +499,7 @@ or to:
 @end group
 @end smallexample
 
-The Xtensa assempler uses trampolines with jump around only when it cannot
+The Xtensa assembler uses trampolines with jump around only when it cannot
 find suitable unreachable trampoline.  There may be multiple trampolines
 between the jump instruction and its target.
 
@@ -488,7 +509,7 @@ will reach their targets once resolved.
 Jump relaxation is enabled by default because it does not affect code size
 or performance while the code itself is small.  This relaxation may be
 disabled completely with @samp{--no-trampolines} or @samp{--no-transform}
-command-line options (@pxref{Xtensa Options, ,Command Line Options}).
+command-line options (@pxref{Xtensa Options, ,Command-line Options}).
 
 @node Xtensa Immediate Relaxation
 @subsection Other Immediate Field Relaxation
@@ -498,7 +519,7 @@ command-line options (@pxref{Xtensa Options, ,Command Line Options}).
 The assembler normally performs the following other relaxations.  They
 can be disabled by using underscore prefixes (@pxref{Xtensa Opcodes,
 ,Opcode Names}), the @samp{--no-transform} command-line option
-(@pxref{Xtensa Options, ,Command Line Options}), or the
+(@pxref{Xtensa Options, ,Command-line Options}), or the
 @code{no-transform} directive (@pxref{Transform Directive, ,transform}).
 
 @cindex @code{MOVI} instructions, relaxation
@@ -749,7 +770,7 @@ the data in a literal pool.
 
 Literal pools are placed by default in separate literal sections;
 however, when using the @samp{--text-@-section-@-literals}
-option (@pxref{Xtensa Options, ,Command Line Options}), the literal
+option (@pxref{Xtensa Options, ,Command-line Options}), the literal
 pools for PC-relative mode @code{L32R} instructions
 are placed in the current section.@footnote{Literals for the
 @code{.init} and @code{.fini} sections are always placed in separate
@@ -872,7 +893,7 @@ do not change.  @xref{Literal Directive, ,literal}.  If the @var{name}
 argument is omitted, the literal sections revert to the defaults.  This
 directive has no effect when using the
 @samp{--text-@-section-@-literals} option (@pxref{Xtensa Options,
-,Command Line Options}).
+,Command-line Options}).
 
 @node Absolute Literals Directive
 @subsection absolute-literals
This page took 0.034809 seconds and 4 git commands to generate.