|
|
|
@ -144,10 +144,10 @@ specified on a single line by separating the opcodes with semicolons: |
|
|
|
@{ [@var{format};] @var{opcode0} [@var{operands}]; @var{opcode1} [@var{operands}]; @var{opcode2} [@var{operands}]; @dots{} @} |
|
|
|
@end smallexample |
|
|
|
|
|
|
|
The assembler can automatically bundle opcodes into FLIX instructions. |
|
|
|
It encodes the opcodes in order, one at a time, |
|
|
|
choosing the smallest format where each opcode can be encoded and |
|
|
|
filling unused instruction slots with no-ops. |
|
|
|
If an opcode can only be encoded in a FLIX instruction but is not |
|
|
|
specified as part of a FLIX bundle, the assembler will choose the |
|
|
|
smallest format where the opcode can be encoded and |
|
|
|
will fill unused instruction slots with no-ops. |
|
|
|
|
|
|
|
@menu |
|
|
|
* Xtensa Opcodes:: Opcode Naming Conventions. |
|
|
|
@ -255,9 +255,7 @@ instruction fetch widths.) An |
|
|
|
instruction immediately following a call is treated as a branch target |
|
|
|
in this context, because it will be the target of a return from the |
|
|
|
call. This alignment has the potential to reduce branch penalties at |
|
|
|
some expense in code size. The assembler will not attempt to align |
|
|
|
labels with the prefixes @code{.Ln} and @code{.LM}, since these labels |
|
|
|
are used for debugging information and are not typically branch targets. |
|
|
|
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}). |
|
|
|
|