as: AArch64 Directives

1 
1 9.1.5 AArch64 Machine Directives
1 --------------------------------
1 
1 '.arch NAME'
1      Select the target architecture.  Valid values for NAME are the same
1      as for the '-march' commandline option.
1 
1      Specifying '.arch' clears any previously selected architecture
1      extensions.
1 
1 '.arch_extension NAME'
1      Add or remove an architecture extension to the target architecture.
1      Valid values for NAME are the same as those accepted as
1      architectural extensions by the '-mcpu' commandline option.
1 
1      '.arch_extension' may be used multiple times to add or remove
1      extensions incrementally to the architecture being compiled for.
1 
1 '.bss'
1      This directive switches to the '.bss' section.
1 
1 '.cpu NAME'
1      Set the target processor.  Valid values for NAME are the same as
1      those accepted by the '-mcpu=' command line option.
1 
1 '.dword EXPRESSIONS'
1      The '.dword' directive produces 64 bit values.
1 
1 '.even'
1      The '.even' directive aligns the output on the next even byte
1      boundary.
1 
1 '.inst EXPRESSIONS'
1      Inserts the expressions into the output as if they were
1      instructions, rather than data.
1 
1 '.ltorg'
1      This directive causes the current contents of the literal pool to
1      be dumped into the current section (which is assumed to be the
1      .text section) at the current location (aligned to a word
1      boundary).  GAS maintains a separate literal pool for each section
1      and each sub-section.  The '.ltorg' directive will only affect the
1      literal pool of the current section and sub-section.  At the end of
1      assembly all remaining, un-empty literal pools will automatically
1      be dumped.
1 
1      Note - older versions of GAS would dump the current literal pool
1      any time a section change occurred.  This is no longer done, since
1      it prevents accurate control of the placement of literal pools.
1 
1 '.pool'
1      This is a synonym for .ltorg.
1 
1 'NAME .req REGISTER NAME'
1      This creates an alias for REGISTER NAME called NAME.  For example:
1 
1                   foo .req w0
1 
1      ip0, ip1, lr and fp are automatically defined to alias to X16, X17,
1      X30 and X29 respectively.
1 
1 '.tlsdescadd'
1      Emits a TLSDESC_ADD reloc on the next instruction.
1 
1 '.tlsdesccall'
1      Emits a TLSDESC_CALL reloc on the next instruction.
1 
1 '.tlsdescldr'
1      Emits a TLSDESC_LDR reloc on the next instruction.
1 
1 '.unreq ALIAS-NAME'
1      This undefines a register alias which was previously defined using
1      the 'req' directive.  For example:
1 
1                   foo .req w0
1                   .unreq foo
1 
1      An error occurs if the name is undefined.  Note - this pseudo op
1      can be used to delete builtin in register name aliases (eg 'w0').
1      This should only be done if it is really necessary.
1 
1 '.variant_pcs SYMBOL'
1      This directive marks SYMBOL referencing a function that may follow
1      a variant procedure call standard with different register usage
1      convention from the base procedure call standard.
1 
1 '.xword EXPRESSIONS'
1      The '.xword' directive produces 64 bit values.  This is the same as
1      the '.dword' directive.
1