Next: Xtensa Syntax, Up: Xtensa-Dependent [Contents][Index]
--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.
See literal.
--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.
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.
--trampolines | --no-trampolines
Enable or disable transformation of jump instructions to allow jumps across a greater range of addresses. See Jump Trampolines. 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’.
--abi-windowed | --abi-call0
Choose ABI tag written to the .xtensa.info
section. ABI tag
indicates ABI of the assembly code. A warning is issued by the linker
on an attempt to link object files with inconsistent ABI tags.
Default ABI is chosen by the Xtensa core configuration.
Next: Xtensa Syntax, Up: Xtensa-Dependent [Contents][Index]