| @c Copyright 2010 Free Software Foundation, Inc. |
| @c This is part of the GAS manual. |
| @c For copying conditions, see the file as.texinfo. |
| @ifset GENERIC |
| @page |
| @node TIC6X-Dependent |
| @chapter TIC6X Dependent Features |
| @end ifset |
| @ifclear GENERIC |
| @node Machine Dependencies |
| @chapter TIC6X Dependent Features |
| @end ifclear |
| |
| @cindex TIC6X support |
| @cindex TMS320C6X support |
| @menu |
| * TIC6X Options:: Options |
| * TIC6X Syntax:: Syntax |
| * TIC6X Directives:: Directives |
| @end menu |
| |
| @node TIC6X Options |
| @section TIC6X Options |
| @cindex TIC6X options |
| @cindex options for TIC6X |
| |
| @table @code |
| |
| @cindex @code{-march=} command line option, TIC6X |
| @item -march=@var{arch} |
| Enable (only) instructions from architecture @var{arch}. By default, |
| all instructions are permitted. |
| |
| The following values of @var{arch} are accepted: @code{c62x}, |
| @code{c64x}, @code{c64x+}, @code{c67x}, @code{c67x+}, @code{c674x}. |
| |
| @cindex @code{-matomic} command line option, TIC6X |
| @cindex @code{-mno-atomic} command line option, TIC6X |
| @item -matomic |
| @itemx -mno-atomic |
| Enable or disable the optional C64x+ atomic operation instructions. |
| By default, they are enabled if no @option{-march} option is given, or |
| if an architecture is specified with @option{-march} that implies |
| these instructions are present (currently, there are no such |
| architectures); they are disabled if an architecture is specified with |
| @option{-march} on which the instructions are optional or not |
| present. This option overrides such a default from the architecture, |
| independent of the order in which the @option{-march} or |
| @option{-matomic} or @option{-mno-atomic} options are passed. |
| |
| @cindex @code{-mdsbt} command line option, TIC6X |
| @cindex @code{-mno-dsbt} command line option, TIC6X |
| @item -mdsbt |
| @itemx -mno-dsbt |
| The @option{-mdsbt} option causes the assembler to generate the |
| @code{Tag_ABI_DSBT} attribute with a value of 1, indicating that the |
| code is using DSBT addressing. The @option{-mno-dsbt} option, the |
| default, causes the tag to have a value of 0, indicating that the code |
| does not use DSBT addressing. The linker will emit a warning if |
| objects of different type (DSBT and non-DSBT) are linked together. |
| |
| @cindex @code{-mpid=} command line option, TIC6X |
| @item -mpid=no |
| @itemx -mpid=near |
| @itemx -mpid=far |
| The @option{-mpid=} option causes the assembler to generate the |
| @code{Tag_ABI_PID} attribute with a value indicating the form of data |
| addressing used by the code. @option{-mpid=no}, the default, |
| indicates position-dependent data addressing, @option{-mpid=near} |
| indicates position-independent addressing with GOT accesses using near |
| DP addressing, and @option{-mpid=far} indicates position-independent |
| addressing with GOT accesses using far DP addressing. The linker will |
| emit a warning if objects built with different settings of this option |
| are linked together. |
| |
| @cindex @code{-mpic} command line option, TIC6X |
| @cindex @code{-mno-pic} command line option, TIC6X |
| @item -mpic |
| @itemx -mno-pic |
| The @option{-mpic} option causes the assembler to generate the |
| @code{Tag_ABI_PIC} attribute with a value of 1, indicating that the |
| code is using position-independent code addressing, The |
| @code{-mno-pic} option, the default, causes the tag to have a value of |
| 0, indicating position-dependent code addressing. The linker will |
| emit a warning if objects of different type (position-dependent and |
| position-independent) are linked together. |
| |
| @cindex TIC6X big-endian output |
| @cindex TIC6X little-endian output |
| @cindex big-endian output, TIC6X |
| @cindex little-endian output, TIC6X |
| @item -mbig-endian |
| @itemx -mlittle-endian |
| Generate code for the specified endianness. The default is |
| little-endian. |
| |
| @end table |
| |
| @node TIC6X Syntax |
| @section TIC6X Syntax |
| |
| @cindex line comment character, TIC6X |
| @cindex TIC6X line comment character |
| The presence of a @samp{;} on a line indicates the start of a comment |
| that extends to the end of the current line. If a @samp{#} or |
| @samp{*} appears as the first character of a line, the whole line is |
| treated as a comment. |
| |
| @cindex line separator, TIC6X |
| @cindex statement separator, TIC6X |
| @cindex TIC6X line separator |
| The @samp{@@} character can be used instead of a newline to separate |
| statements. |
| |
| Instruction, register and functional unit names are case-insensitive. |
| @command{@value{AS}} requires fully-specified functional unit names, |
| such as @samp{.S1}, @samp{.L1X} or @samp{.D1T2}, on all instructions |
| using a functional unit. |
| |
| For some instructions, there may be syntactic ambiguity between |
| register or functional unit names and the names of labels or other |
| symbols. To avoid this, enclose the ambiguous symbol name in |
| parentheses; register and functional unit names may not be enclosed in |
| parentheses. |
| |
| @node TIC6X Directives |
| @section TIC6X Directives |
| |
| @cindex machine directives, TIC6X |
| @cindex TIC6X machine directives |
| |
| Directives controlling the set of instructions accepted by the |
| assembler have effect for instructions between the directive and any |
| subsequent directive overriding it. |
| |
| @table @code |
| |
| @cindex @code{.arch} directive, TIC6X |
| @item .arch @var{arch} |
| This has the same effect as @option{-march=@var{arch}}. |
| |
| @cindex @code{.atomic} directive, TIC6X |
| @cindex @code{.noatomic} directive, TIC6X |
| @item .atomic |
| @itemx .noatomic |
| These have the same effects as @option{-matomic} and |
| @option{-mno-atomic}. |
| |
| @cindex @code{.c6xabi_attribute} directive, TIC6X |
| @item .c6xabi_attribute @var{tag}, @var{value} |
| Set the C6000 EABI build attribute @var{tag} to @var{value}. |
| |
| The @var{tag} is either an attribute number or one of |
| @code{Tag_ISA}, @code{Tag_ABI_wchar_t}, |
| @code{Tag_ABI_stack_align_needed}, |
| @code{Tag_ABI_stack_align_preserved}, @code{Tag_ABI_DSBT}, |
| @code{Tag_ABI_PID}, @code{Tag_ABI_PIC}, |
| @code{TAG_ABI_array_object_alignment}, |
| @code{TAG_ABI_array_object_align_expected}, |
| @code{Tag_ABI_compatibility} and @code{Tag_ABI_conformance}. The |
| @var{value} is either a @code{number}, @code{"string"}, or |
| @code{number, "string"} depending on the tag. |
| |
| @cindex @code{.nocmp} directive, TIC6X |
| @item .nocmp |
| Disallow use of C64x+ compact instructions in the current text |
| section. |
| |
| @end table |