as: Xtensa Directives

1 
1 9.55.5 Directives
1 -----------------
1 
1 The Xtensa assembler supports a region-based directive syntax:
1 
1          .begin DIRECTIVE [OPTIONS]
1          ...
1          .end DIRECTIVE
1 
1    All the Xtensa-specific directives that apply to a region of code use
1 this syntax.
1 
1    The directive applies to code between the '.begin' and the '.end'.
1 The state of the option after the '.end' reverts to what it was before
1 the '.begin'.  A nested '.begin'/'.end' region can further change the
1 state of the directive without having to be aware of its outer state.
1 For example, consider:
1 
1          .begin no-transform
1      L:  add a0, a1, a2
1          .begin transform
1      M:  add a0, a1, a2
1          .end transform
1      N:  add a0, a1, a2
1          .end no-transform
1 
1    The 'ADD' opcodes at 'L' and 'N' in the outer 'no-transform' region
1 both result in 'ADD' machine instructions, but the assembler selects an
1 'ADD.N' instruction for the 'ADD' at 'M' in the inner 'transform'
1 region.
1 
1    The advantage of this style is that it works well inside macros which
1 can preserve the context of their callers.
1 
1    The following directives are available:

Menu