Next: , Previous: AArch64 Floating Point, Up: AArch64-Dependent


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.


.xword
The .xword directive produces 64 bit values.