9.36.1 Command Line Options
The Xtensa version of the gnu assembler supports these
special 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. These options only affect
literals referenced via PC-relative L32R
instructions; literals
for absolute mode L32R
instructions are handled separately.
See literal.
--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. See Automatic Instruction 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. See Function 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.