Next: AArch64 Opcodes, Previous: AArch64 Floating Point, Up: AArch64-Dependent [Contents][Index]

#### 9.1.5 AArch64 Machine Directives

`.arch name`

  Select the target architecture. Valid values for name are the same as for the `-march` commandline option.

  Specifying `.arch` clears any previously selected architecture extensions.

`.arch_extension name`

  Add or remove an architecture extension to the target architecture. Valid values for name are the same as those accepted as architectural extensions by the `-mcpu` commandline option.

  `.arch_extension` may be used multiple times to add or remove extensions incrementally to the architecture being compiled for.

`.bss`

  This directive switches to the `.bss` section.

`.ltorg`

  This directive causes the current contents of the literal pool to be dumped into the current section (which is assumed to be the .text section) at the current location (aligned to a word boundary). GAS maintains a separate literal pool for each section and each sub-section. The `.ltorg` directive will only affect the literal pool of the current section and sub-section. At the end of assembly all remaining, un-empty literal pools will automatically be dumped.

  Note - older versions of GAS would dump the current literal pool any time a section change occurred. This is no longer done, since it prevents accurate control of the placement of literal pools.

`.pool`

  This is a synonym for .ltorg.

`name .req register name`

  This creates an alias for register name called name. For example:

              foo .req w0

`.unreq alias-name`

  This undefines a register alias which was previously defined using the `req` directive. For example:

              foo .req w0
              .unreq foo

  An error occurs if the name is undefined. Note - this pseudo op can be used to delete builtin in register name aliases (eg ’w0’). This should only be done if it is really necessary.

Next: AArch64 Opcodes, Previous: AArch64 Floating Point, Up: AArch64-Dependent [Contents][Index]