[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.33.5.6 literal_position

When using `--text-section-literals' to place literals inline in the section being assembled, the .literal_position directive can be used to mark a potential location for a literal pool.

 
    .literal_position

The .literal_position directive is ignored when the `--text-section-literals' option is not used.

The assembler will automatically place text section literal pools before ENTRY instructions, so the .literal_position directive is only needed to specify some other location for a literal pool. You may need to add an explicit jump instruction to skip over an inline literal pool.

For example, an interrupt vector does not begin with an ENTRY instruction so the assembler will be unable to automatically find a good place to put a literal pool. Moreover, the code for the interrupt vector must be at a specific starting address, so the literal pool cannot come before the start of the code. The literal pool for the vector must be explicitly positioned in the middle of the vector (before any uses of the literals, of course). The .literal_position directive can be used to do this. In the following code, the literal for `M' will automatically be aligned correctly and is placed after the unconditional jump.

 
    .global M
code_start:
    j continue
    .literal_position
    .align 4
continue:
    movi    a4, M



This document was generated by Guillaume Rousse on December, 12 2004 using texi2html