]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/doc/c-tic6x.texi
bfd:
[thirdparty/binutils-gdb.git] / gas / doc / c-tic6x.texi
1 @c Copyright 2010 Free Software Foundation, Inc.
2 @c This is part of the GAS manual.
3 @c For copying conditions, see the file as.texinfo.
4 @ifset GENERIC
5 @page
6 @node TIC6X-Dependent
7 @chapter TIC6X Dependent Features
8 @end ifset
9 @ifclear GENERIC
10 @node Machine Dependencies
11 @chapter TIC6X Dependent Features
12 @end ifclear
13
14 @cindex TIC6X support
15 @cindex TMS320C6X support
16 @menu
17 * TIC6X Options:: Options
18 * TIC6X Syntax:: Syntax
19 * TIC6X Directives:: Directives
20 @end menu
21
22 @node TIC6X Options
23 @section TIC6X Options
24 @cindex TIC6X options
25 @cindex options for TIC6X
26
27 @table @code
28
29 @cindex @code{-march=} command line option, TIC6X
30 @item -march=@var{arch}
31 Enable (only) instructions from architecture @var{arch}. By default,
32 all instructions are permitted.
33
34 The following values of @var{arch} are accepted: @code{c62x},
35 @code{c64x}, @code{c64x+}, @code{c67x}, @code{c67x+}, @code{c674x}.
36
37 @cindex @code{-matomic} command line option, TIC6X
38 @cindex @code{-mno-atomic} command line option, TIC6X
39 @item -matomic
40 @itemx -mno-atomic
41 Enable or disable the optional C64x+ atomic operation instructions.
42 By default, they are enabled if no @option{-march} option is given, or
43 if an architecture is specified with @option{-march} that implies
44 these instructions are present (currently, there are no such
45 architectures); they are disabled if an architecture is specified with
46 @option{-march} on which the instructions are optional or not
47 present. This option overrides such a default from the architecture,
48 independent of the order in which the @option{-march} or
49 @option{-matomic} or @option{-mno-atomic} options are passed.
50
51 @cindex @code{-mdsbt} command line option, TIC6X
52 @cindex @code{-mno-dsbt} command line option, TIC6X
53 @item -mdsbt
54 @itemx -mno-dsbt
55 The @option{-mdsbt} option causes the assembler to generate the
56 @code{Tag_ABI_DSBT} attribute with a value of 1, indicating that the
57 code is using DSBT addressing. The @option{-mno-dsbt} option, the
58 default, causes the tag to have a value of 0, indicating that the code
59 does not use DSBT addressing. The linker will emit a warning if
60 objects of different type (DSBT and non-DSBT) are linked together.
61
62 @cindex TIC6X big-endian output
63 @cindex TIC6X little-endian output
64 @cindex big-endian output, TIC6X
65 @cindex little-endian output, TIC6X
66 @item -mbig-endian
67 @itemx -mlittle-endian
68 Generate code for the specified endianness. The default is
69 little-endian.
70
71 @end table
72
73 @node TIC6X Syntax
74 @section TIC6X Syntax
75
76 @cindex line comment character, TIC6X
77 @cindex TIC6X line comment character
78 The presence of a @samp{;} on a line indicates the start of a comment
79 that extends to the end of the current line. If a @samp{#} or
80 @samp{*} appears as the first character of a line, the whole line is
81 treated as a comment.
82
83 @cindex line separator, TIC6X
84 @cindex statement separator, TIC6X
85 @cindex TIC6X line separator
86 The @samp{@@} character can be used instead of a newline to separate
87 statements.
88
89 Instruction, register and functional unit names are case-insensitive.
90 @command{@value{AS}} requires fully-specified functional unit names,
91 such as @samp{.S1}, @samp{.L1X} or @samp{.D1T2}, on all instructions
92 using a functional unit.
93
94 For some instructions, there may be syntactic ambiguity between
95 register or functional unit names and the names of labels or other
96 symbols. To avoid this, enclose the ambiguous symbol name in
97 parentheses; register and functional unit names may not be enclosed in
98 parentheses.
99
100 @node TIC6X Directives
101 @section TIC6X Directives
102
103 @cindex machine directives, TIC6X
104 @cindex TIC6X machine directives
105
106 Directives controlling the set of instructions accepted by the
107 assembler have effect for instructions between the directive and any
108 subsequent directive overriding it.
109
110 @table @code
111
112 @cindex @code{.arch} directive, TIC6X
113 @item .arch @var{arch}
114 This has the same effect as @option{-march=@var{arch}}.
115
116 @cindex @code{.atomic} directive, TIC6X
117 @cindex @code{.noatomic} directive, TIC6X
118 @item .atomic
119 @itemx .noatomic
120 These have the same effects as @option{-matomic} and
121 @option{-mno-atomic}.
122
123 @cindex @code{.c6xabi_attribute} directive, TIC6X
124 @item .c6xabi_attribute @var{tag}, @var{value}
125 Set the C6000 EABI build attribute @var{tag} to @var{value}.
126
127 The @var{tag} is either an attribute number or one of
128 @code{Tag_ISA}, @code{Tag_ABI_DSBT} and @code{Tag_ABI_compatibility}. The
129 @var{value} is either a @code{number}, @code{"string"}, or
130 @code{number, "string"} depending on the tag.
131
132 @cindex @code{.nocmp} directive, TIC6X
133 @item .nocmp
134 Disallow use of C64x+ compact instructions in the current text
135 section.
136
137 @end table