Next: , Previous: ARC Syntax, Up: ARC-Dependent


9.3.3 ARC Machine Directives

The ARC version of as supports the following additional machine directives:

.lcomm symbol , length[, alignment]
Reserve length (an absolute expression) bytes for a local common denoted by symbol. The section and value of symbol are those of the new local common. The addresses are allocated in the bss section, so that at run-time the bytes start off zeroed. Since symbol is not declared global, it is normally not visible to ld. The optional third parameter, alignment, specifies the desired alignment of the symbol in the bss section, specified as a byte boundary (for example, an alignment of 16 means that the least significant 4 bits of the address should be zero). The alignment must be an absolute expression, and it must be a power of two. If no alignment is specified, as will set the alignment to the largest power of two less than or equal to the size of the symbol, up to a maximum of 16.


.lcommon symbol , length[, alignment]
The same as lcomm directive.

The .cpu directive must be followed by the desired core version. Permitted values for CPU are:

ARC600
Assemble for the ARC600 instruction set.
ARC700
Assemble for the ARC700 instruction set.
EM
Assemble for the ARC EM instruction set.
HS
Assemble for the ARC HS instruction set.

Note: the .cpu directive overrides the command line option -mcpu=cpu; a warning is emitted when the version is not consistent between the two.