9.54.5 Directives

The Xtensa assembler supports a region-based directive syntax:

         .begin directive
         .end directive

All the Xtensa-specific directives that apply to a region of code use this syntax.

The directive applies to code between the .begin and the .end . The state of the option after the .end reverts to what it was before the .begin . A nested .begin /.end region can further change the state of the directive without having to be aware of its outer state. For example, consider:

         .begin no-transform
     L:  add a0, a1, a2
         .begin transform
     M:  add a0, a1, a2
         .end transform
     N:  add a0, a1, a2
         .end no-transform

The ADD opcodes at L and N in the outer no-transform region both result in ADD machine instructions, but the assembler selects an ADD.N instruction for the ADD at M in the inner transform region.

The advantage of this style is that it works well inside macros which can preserve the context of their callers.

The following directives are available: