as: Xtensa Options
9.54.1 Command-line Options
---------------------------
'--text-section-literals | --no-text-section-literals'
Control the treatment of literal pools. The default is
'--no-text-section-literals', which places literals in separate
sections in the output file. This allows the literal pool to be
placed in a data RAM/ROM. With '--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 'L32R' instructions in the text section. Literals
are grouped into pools following '.literal_position' directives or
preceding 'ENTRY' instructions. These options only affect literals
referenced via PC-relative 'L32R' instructions; literals for
absolute mode 'L32R' instructions are handled separately.
literal Literal Directive.
'--auto-litpools | --no-auto-litpools'
Control the treatment of literal pools. The default is
'--no-auto-litpools', which in the absence of
'--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 '--auto-litpools', the literals are interspersed
in the text section in order to keep them as close as possible to
their references, explicit '.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 'L32R' instructions at the end. These options only
affect literals referenced via PC-relative 'L32R' instructions;
literals for absolute mode 'L32R' instructions are handled
separately. When used together with '--text-section-literals',
'--auto-litpools' takes precedence. literal Literal
Directive.
'--absolute-literals | --no-absolute-literals'
Indicate to the assembler whether 'L32R' instructions use absolute
or PC-relative addressing. If the processor includes the absolute
addressing option, the default is to use absolute 'L32R'
relocations. Otherwise, only the PC-relative 'L32R' relocations
can be used.
'--target-align | --no-target-align'
Enable or disable automatic alignment to reduce branch penalties at
some expense in code size. Automatic Instruction Alignment
Xtensa Automatic Alignment. This optimization is enabled by
default. Note that the assembler will always align instructions
like 'LOOP' that have fixed alignment requirements.
'--longcalls | --no-longcalls'
Enable or disable transformation of call instructions to allow
calls across a greater range of addresses. Function Call
Relaxation Xtensa Call Relaxation. This option should be used
when call targets can potentially be out of range. It may degrade
both code size and performance, but the linker can generally
optimize away the unnecessary overhead when a call ends up within
range. The default is '--no-longcalls'.
'--transform | --no-transform'
Enable or disable all assembler transformations of Xtensa
instructions, including both relaxation and optimization. The
default is '--transform'; '--no-transform' should only be used in
the rare cases when the instructions must be exactly as specified
in the assembly source. Using '--no-transform' causes out of range
instruction operands to be errors.
'--rename-section OLDNAME=NEWNAME'
Rename the OLDNAME section to NEWNAME. This option can be used
multiple times to rename multiple sections.
'--trampolines | --no-trampolines'
Enable or disable transformation of jump instructions to allow
jumps across a greater range of addresses. Jump Trampolines
Xtensa Jump Relaxation. This option should be used when jump
targets can potentially be out of range. In the absence of such
jumps this option does not affect code size or performance. The
default is '--trampolines'.